2016-07-01 12 views
1

私は初心者ですCouchbaseへのユーザー、私は以下のようにデフォルトのバケットに文書を挿入しようとしています。 "= SQL 文字列のクエリなどの直接的なクエリのように使用してJsonDocumentを調製することにより 1)の挿入とバケットCouchbaseでのCRUD操作の使用

StringBuilder strBuilder = new StringBuilder(); 
    strBuilder.append("{'phone':{'y':{'phonePropertyList':{'dskFlag':'false','serialId':1000,'inputTray':{'LIST': {'e':[{'inTray':{'id':'1','name':'BypassTray','amount': {'unit':'sheets','state':'empty','typical':'0','capacity':'100'}"); 
    String LDATA = strBuilder.toString(); 
    Cluster cluster = CouchbaseCluster.create("localhost"); 
Bucket bucket = cluster.openBucket("default"); 
JsonObject deviceinfoObj = JsonObject.create().put("phoneinfo", LDATA); 
bucket.upsert(JsonDocument.create("phone", deviceinfoObj)); 

2)またはにアップサート: 私はバケツでJSON文書を挿入するには、次の2つの方法を見つけましたデフォルト(KEY、VALUE)の値(LDATA)」

私はNORAM SQL文 例のように上記のクエリを実行する方法を見つけることができません午前にアップサート: ステートメントST = connection.createStatement(); ResultSet rs = st.executeQuery(クエリ);

N1QLQueryを使用してjsonドキュメントをCouchbase Bucketに挿入する方法。

ドキュメントを取得する2つの方法が見つかりました。

I)ドキュメントID bucket.get( "電話")を使用して、直接ドキュメントを取得する。コンテンツ()。( "phoneinfo")

II)Nを使用して文書を入手しよう!QueryResultSet N1qlQueryResult結果= bucket.query(N1qlQuery.simple( "select * from default;"));

  for (N1qlQueryRow row : result) { 
      System.out.println(row); 
     } 

私は、Couchbaseのドキュメントをバケットに挿入してからフェッチするためのさまざまなアプローチと混同しました。 第1のアプローチを使用してドキュメントを挿入する場合、JsonObjectをいくつかのキーと値でjsondocument全体として準備する必要があります。

だから、私は2番目のアプローチを使用してドキュメントを挿入する方が良いと思うので、N1QLResultSet(2番目のアプローチ)を使用してドキュメントをフェッチできます。しかし、最初のアプローチを使用することによって、私は、バケット内のドキュメントの数とを取得する必要があり、その後、唯一の私はできたすべてのドキュメント

クエリをループ: 1)文書 2)Inから選択ネストされたノードを取得する方法JSONドキュメントを作成するには、各ノードのキー値を分割してJSONObjectに格納する必要がありますか? 3)高速取得を行うバケットのビューを作成するにはどうすればよいですか?

答えて

1

なぜ単純なJava pojoを作成して@Documentとして定義してください。次に、CrudRepoを使用してcouchbaseから文書を保存したり取得したりします。

このサンプルはあなたを助けるかもしれない: https://github.com/maverickmicky/spring-couchbase-cache

関連する問題