couchbase N1QL - IN子句查询不起作用

时间:2017-05-18 20:49:59

标签: couchbase couchbase-java-api

在我原来的问题中这是一个错字。以下就是我所观察到的。

我的查询看起来像这样 -

字符串查询= select * from table1,其中guid不缺失,doc_type ='xyz'和(guid in $ guid_list);

我的guid_list如下 - List listOfGuid = new ArrayList<>(); listOfGuid.add( “a1b3594f-0b76-4c54-8206-db2c16286320”);

com.couchbase.client.java.document.json.JsonObject placeHolders = com.couchbase.client.java.document.json.JsonObject.create() .put(“guid_list”,JsonArray.from(listOfGuid));

N1qlQuery statement = N1qlQuery.parameterized(query,placeHolders);

这不起作用。但是,如果我尝试使用单引号传递guid_list并在我的查询中硬编码列表,它工作正常。当我把它作为列表传递时,不确定为什么它不起作用。是因为当我作为列表传递时,它以双引号[“a1b3594f-0b76-4c54-8206-db2c16286320”]而不是['a1b3594f-0b76-4c54-8206-db2c16286320']进行。

1 个答案:

答案 0 :(得分:0)

声明可能不正确。看起来缺少报价。 以下是curl命令。 curl -v http://localhost:8093/query/service -H“Content-Type:application / json”-d'{“statement”:“select * from table1 where doc_type = \”xyz \“AND guid in $ guid_list;”,“$ guid_list “:[” 123" , “234”]}“