2016-07-01 132 views
1

我是新手用戶到Couchbase,我試圖將文檔插入到如下所示的默認存儲桶中。 我發現了以下2種方式插入桶裏的JSON文件:通過準備JsonDocument通過使用類似像SQL 查詢字符串直接查詢 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)或=「 UPSERT違約(鍵,值)值(LDATA)」

我無法找到如何執行像NORAM sql語句上面的查詢 例子: 聲明ST = connection.createStatement(); ResultSet rs = st.executeQuery(query);

如何使用N1QLQuery在Couchbase Bucket中插入json文檔。

我發現了兩種獲取文檔的方法。

我)直接獲取文檔通過使用文檔ID bucket.get( 「手機」)。內容()。獲得( 「phoneinfo」)

II)用正四處文檔!QueryResultSet N1qlQueryResult result = bucket.query(N1qlQuery.simple(「select * from default;」));

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

我對在Couchbase中插入文件和從文件夾中提取文件的不同方法感到困惑。 如果我通過使用第一種方法插入文檔,我需要準備JsonObject與一些鍵和值作爲整個jsondocument。

所以我想我最好使用第二種方法插入文檔,所以我將能夠使用N1QLResultSet(第二種方法)獲取文檔。但通過使用第一種方法,我需要得到的桶中的文件的數量和那麼只有我可以通過所有的文件

查詢循環: 1)如何從文件 2)在獲得選擇性嵌套節點json文檔,我是否需要爲每個節點ant分割鍵值然後放入JSONObject來準備JSONDocument? 3)如何爲桶創建一個視圖來快速檢索?

回答