2017-05-18 55 views
-1

這是我原來的問題中的一個錯字。以下是我所觀察到的。couchbase N1QL-IN子句查詢不起作用

我的查詢看起來是這樣的 -

查詢字符串= SELECT * FROM表1其中GUID是不是失蹤,DOC_TYPE = 'XYZ' 和(GUID在$ guid_list);

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

com.couchbase.client.java.document.json.JsonObject佔位符= com.couchbase.client.java.document.json.JsonObject.create() 。把( 「guid_list」,JsonArray.from(listOfGuid) );

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

這是行不通的。但如果我嘗試通過guid_list單引號和硬編碼我的查詢中的列表,它工作正常。不知道爲什麼它不起作用,當我通過它列表。是因爲當我以列表的形式通過時,它以雙引號[「a1b3594f-0b76-4c54-8206-db2c16286320」]代替['a1b3594f-0b76-4c54-8206-db2c16286320']。

+0

[N1ql-> IN運算符的可能重複不適用於其他條件](http://stackoverflow.com/questions/26686772/n1ql-in-operator-does - 不是工作與 - 其他條件) –

回答

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」]}'