使用com.couchbase.client, java-client版本2.2.7我一直无法得到一个 n1ql 查询工作,它使用带有多个项目的 IN 语句,请参阅我的示例查询和下面的 java 代码
public int getCountForDuration(Long startTime, Long endTime, String ids){
JsonObject placeHolders = JsonObject.create().put("ids", ids).put("startTime", startTime).put("endTime", endTime);
N1qlQuery query = N1qlQuery.parameterized(COUNT_STATEMENT, placeHolders)
N1qlQueryResult result = bucket.query(query);
...
}
public static final String COUNT_STATEMENT = "select count(*) as count " +
"from bucketName " +
"where docType = 'docId' " +
"and (id IN [$ids]) " + <----- OFFENDING LINE
"and publishTimestamp between $startTime and $endTime";
Run Code Online (Sandbox Code Playgroud)
我尝试ids 使用 (')、(") 和 …
如何在文档上方建立索引(Couchbase 中的 N1QL 查询)以加快嵌套数组中 SerialNumber 字段的搜索速度(doc => groups => items => item.SerialNumber)?
样本:
{
"Id": "0012ed6e-41af-4e45-b53f-bac3b2eb0b82",
"Machine": "Machine2",
"Groups": [
{
"Id": "0fed9b14-fa38-e511-893a-001125665867",
"Name": "Name",
"Items": [
{
"Id": "64e69b14-fa38-e511-893a-001125665867",
"SerialNumber": "1504H365",
"Position": 73
},
{
"Id": "7be69b14-fa38-e511-893a-001125665867",
"SerialNumber": "1504H364",
"Position": 72
}
]
},
{
"Id": "0fed9b14-fa38-e511-893a-001125665867",
"Name": "Name",
"Items": [
{
"Id": "64e69b14-fa38-e511-893a-001125665867",
"SerialNumber": "1504H365",
"Position": 73
},
{
"Id": "7be69b14-fa38-e511-893a-001125665867",
"SerialNumber": "1504H364",
"Position": 72
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的查询:
CREATE INDEX idx_serial ON `aplikomp-bucket`
(ALL ARRAY(ALL …Run Code Online (Sandbox Code Playgroud) 我对 N1QL 查询相当陌生。我有一些这样的文件。
[
{
"id":"id_1",
"data":{
"name":"name_1"
},
"type":"type_1"
},
{
"id":"id_2",
"data":{
"name":"name_2"
},
"type":"type_2"
},
{
"id":"id_3",
"data":{
"name":"name_3"
},
"type":"type_3"
}
]
Run Code Online (Sandbox Code Playgroud)
我应该创建什么索引才能获取所有具有 的文档"type"="type_3"?
我正在研究DocumentDB,我正在检查查询端选项.我知道目前尚未确定任何事情,但有一些我已经看到完全回答的问题.
Couchbase退出了UnQL?然后开发N1QL?这是否意味着他们将N1QL视为更合适的不同查询语言?或者它是否扩展了UnQL中设置的内容?有什么事实上正式标准化?
有人允许实施N1QL吗?这是一个开放的事实上的标准,而不是以某种方式获得专利的东西.
我跟随json作为Couchbase中的一个条目:
{
"messageType": "TRANS",
"failCount": 0,
"workOrderDetailMap": {
"10873": {
"requestDate": "20160715151239",
"id": 10873,
"responseDate": "20160715151305",
"responseCode": 0,
"status": "SUCCESS",
"resultDocuments": [
"xyz"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想resultCode通过N1QL查询得到字段:
Select * from myproject where workOrderDetailMap.responseCode = 0;
Run Code Online (Sandbox Code Playgroud)
我得到0结果.
我怎样才能做到这一点 ?