如何在 Spring 引导和 Couchbase -N1QL 查询中使用 'IN' 运算符
How to use 'IN' opeartor in Spring boot & Couch base -N1QL query
我有一个 JSON 列表,我正在使用 N1QL 查询从中查找特定值。
当我仅在列表中只有一个值时尝试才有效。
但是如果列表中有多个值,我不会得到响应。
Json
"suppliers_list": [
"767",
"300767"
]
@Query("SELECT users.*, "
+ "META(users).id as _ID, META(users).cas as _CAS FROM #{#n1ql.bucket}"
+ "users WHERE lower(type)='users' AND ANY usersupplist IN users.suppliers_list SATISFIES usersupplist IN [] END")
userRepository.findBySupplierList(String List)
usersDefObjList = userRepository.findBySupplierList("767"); //Working
usersDefObjList = userRepository.findBySupplierList("767,300767"); // Not Working
usersDefObjList = userRepository.findBySupplierList("'767','300767'"); // Not Working
但在 CouchBase 查询中同样有效 window
SELECT users.*,META(users).id as _ID,META(users).cas as _CAS FROM TCI_DATA_MIG users WHERE lower(type)='users' and ANY usersupplist IN users.suppliers_list SATISFIES usersupplist IN ['767','300767'] END
请让我知道您在存储库 N1QL 查询中获取值以解决此问题的建议。
在 N1QL 右侧的 IN 子句需要 ARRAY。
如果您知道可以使用多少个元素
usersupplist IN [,,]
如果 ARRAY 是动态的并且不知道您可以使用多少个元素并作为 ARRAY 传入。
usersupplist IN
= [ "767", "300767" ] i.e. JsonArray.from("767", "300767")
看看这个
我有一个 JSON 列表,我正在使用 N1QL 查询从中查找特定值。 当我仅在列表中只有一个值时尝试才有效。
但是如果列表中有多个值,我不会得到响应。
Json
"suppliers_list": [
"767",
"300767"
]
@Query("SELECT users.*, "
+ "META(users).id as _ID, META(users).cas as _CAS FROM #{#n1ql.bucket}"
+ "users WHERE lower(type)='users' AND ANY usersupplist IN users.suppliers_list SATISFIES usersupplist IN [] END")
userRepository.findBySupplierList(String List)
usersDefObjList = userRepository.findBySupplierList("767"); //Working
usersDefObjList = userRepository.findBySupplierList("767,300767"); // Not Working
usersDefObjList = userRepository.findBySupplierList("'767','300767'"); // Not Working
但在 CouchBase 查询中同样有效 window
SELECT users.*,META(users).id as _ID,META(users).cas as _CAS FROM TCI_DATA_MIG users WHERE lower(type)='users' and ANY usersupplist IN users.suppliers_list SATISFIES usersupplist IN ['767','300767'] END
请让我知道您在存储库 N1QL 查询中获取值以解决此问题的建议。
在 N1QL 右侧的 IN 子句需要 ARRAY。
如果您知道可以使用多少个元素
usersupplist IN [,,]
如果 ARRAY 是动态的并且不知道您可以使用多少个元素并作为 ARRAY 传入。
usersupplist IN
= [ "767", "300767" ] i.e. JsonArray.from("767", "300767")
看看这个