我的文档结构的另一个问题是:
{
"desktop": {
"default": {
"s": {
"camp": {
"100112": 0,
"100114": 0,
"100122": 0
},
"score": 1
}
}
}
}
我想找到至少有一个营地属性大于0的文件。我喜欢这样的东西:
select * from my_bucket t where ANY camp_id IN desktop.default.s.camp SATISFIES camp_id.value > 0 END
但当然它不起作用:)。
任何线索?
提前致谢!
答案 0 :(得分:1)
使用ANY
... IN
... SATISFIES
子句,您已走上正轨。
您的查询的主要问题是您的临时value
对象中没有camp_id
属性。相反,您可以使用OBJECT_VALUES
函数(https://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/objectfun.html)从camp
项中提取值并直接比较它们。
您的查询将类似于以下内容:
SELECT
*
FROM my_bucket
WHERE
ANY camp_val
IN OBJECT_VALUES(default.desktop.default.s.camp)
SATISFIES camp_val > 0
END