我是Couchbase的新手用户,我正在尝试将文档插入默认存储桶,如下所示。 我发现以下两种方法将json文档插入到存储桶中: 1)通过准备JsonDocument插入并插入桶中
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)或者使用像SQL这样的直接查询 字符串查询=“upsert into default(KEY,VALUE)values(LDATA)”
我无法找到如noram sql语句执行上述查询的方法 例: Statement st = connection.createStatement(); ResultSet rs = st.executeQuery(query);
如何使用N1QLQuery在Couchbase Bucket中插入json文档。
我找到了两种获取文档的方法。
i)使用文档ID直接获取文档 bucket.get( “手机”)。内容()。得到( “phoneinfo”)
ii)使用N!QueryResultSet获取文档
N1qlQueryResult result = bucket.query(N1qlQuery.simple(“select * from default
;”));
for (N1qlQueryRow row : result) {
System.out.println(row);
}
我对在Couchbase中从/向桶中插入和提取文档的不同方法感到困惑。 如果我使用第一种方法插入文档,我需要使用一些键和值作为整个jsondocument准备JsonObject。
所以我认为最好使用第二种方法插入文档,因此我将能够使用N1QLResultSet(第二种方法)获取文档。但是通过使用第一种方法,我需要获取存储桶中的文档数量,然后只能循环遍历所有文档
查询: 1)如何从文档中获取选择性嵌套节点 2)在json文档中,我是否需要为每个节点ant分割键值然后放入JSONObject来准备JSONDocument? 3)如何为桶创建快速检索视图?
答案 0 :(得分:1)
为什么不创建一个简单的java pojo并将其定义为@Document。然后使用CrudRepo从couchbase保存和检索文档。
此示例可能对您有所帮助: https://github.com/maverickmicky/spring-couchbase-cache