我想根据一些非空的属性从查询控制台搜索文档。让我们说这是我的json文件。
{" a1" :" 1234"," a2" :" abc"," a3" :null," a4" :" mno" }
{" a1" :" 1235"," a2" :" xyz"," a3" :"价值"," a4" :" mno" }
我可以根据这样的属性来查询文档
cts:search(fn:collection(), cts:json-property-value-query("a3","value"));
我无法对此查询使用不等逻辑运算符。任何人都可以告诉我,如果我必须根据属性 a3 搜索非空的文件,那么查询的内容是什么?
答案 0 :(得分:3)
只使用值查询,我会这样做:
cts:search(fn:collection(), cts:and-query(
(
cts:json-property-value-query("a3", "*", "wildcarded"),
cts:not-query(cts:json-property-value-query("a3", json:null()))
)
)
);
通过使用单词查询而不是值查询,我可以通过较小的查询来影响这一点。
请注意,使用通配符查询只是为了隔离具有元素' a3'的候选文档。对于XML,我会使用元素查询来确保我有元素,但我不知道有什么方法可以直接在json中这样做。