Java 在Couchbase中使用CRUD操作
我是一个新手,尝试将文档插入默认的bucket,如下所示。 我找到了以下两种方法将json文档插入到bucket中: 1) 通过准备JsonDocument插入并向上插入铲斗Java 在Couchbase中使用CRUD操作,java,couchbase,couchbase-view,couchbase-java-api,Java,Couchbase,Couchbase View,Couchbase Java Api,我是一个新手,尝试将文档插入默认的bucket,如下所示。 我找到了以下两种方法将json文档插入到bucket中: 1) 通过准备JsonDocument插入并向上插入铲斗 StringBuilder strBuilder = new StringBuilder(); strBuilder.append("{'phone':{'y':{'phonePropertyList':{'dskFlag':'false','serialId':1000,'inputTray':{'LIS
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的直接查询
String query=“向上插入默认(键、值)值(LDATA)”
我找不到如何像NORAMSQL语句那样执行上面的查询
例子:
语句st=connection.createStatement();
结果集rs=st.executeQuery(查询)
如何使用N1QLQuery在Couchbase Bucket中插入json文档
我找到了获取文档的两种方法
i) 使用文档Id直接获取文档
bucket.get(“电话”).content().get(“电话信息”)
ii)使用N!获取文件!查询结果集
N1qlQueryResult结果=bucket.query(N1qlQuery.simple(“从默认值中选择*”)
我对Couchbase中从bucket插入和获取文档的不同方法感到困惑。
如果我使用第1种方法插入文档,我需要将带有一些键和值的JsonObject作为一个完整的jsondocument来准备
因此,我认为最好使用第二种方法插入文档,这样就可以使用N1QLResultSet(第二种方法)获取文档。但是通过使用第一种方法,我需要得到桶中文档的数量,然后只有我可以循环遍历所有文档
查询:
1) 如何从文档中获取选择性嵌套节点
2) 在json文档中,我是否需要拆分每个节点的键值,然后放入JSONObject来准备JSONDocument?
3) 如何为bucket创建视图以进行快速检索?为什么不创建一个简单的java pojo并将其定义为@Document。然后使用Crudepo从couchbase保存和检索文档
此示例可能会帮助您:
for (N1qlQueryRow row : result) {
System.out.println(row);
}