如何使用MarkLogic java API创建查询,以获取不带';你没有特定的jsonKey吗?

如何使用MarkLogic java API创建查询,以获取不带';你没有特定的jsonKey吗?,marklogic,Marklogic,我是Marklogic新手,需要在(4天)中快速评估Marklogic。 我想知道如何使用JavaAPI执行一个查询,从而获得所有没有特定jsonKey的json文档 我现在被查询api弄得头晕目眩,不知道该使用什么。 非常感谢您的帮助 问候 Jan van de Klok那么您正试图使用JSON键值查询,如前所述?这些似乎只是正面查询,相当于cts:element-value查询terms 对于更复杂的查询,您可能会使用结构化查询选项,该选项将在同一指南的下一节中介绍。您可以使用search:

我是Marklogic新手,需要在(4天)中快速评估Marklogic。 我想知道如何使用JavaAPI执行一个查询,从而获得所有没有特定jsonKey的json文档

我现在被查询api弄得头晕目眩,不知道该使用什么。 非常感谢您的帮助

问候


Jan van de Klok

那么您正试图使用JSON键值查询,如前所述?这些似乎只是正面查询,相当于
cts:element-value查询
terms

对于更复杂的查询,您可能会使用结构化查询选项,该选项将在同一指南的下一节中介绍。您可以使用
search:notquery
search:value-constraint-query
元素在XML中构造它。或者使用像Java代码这样的接口来构造它


另一个选项是使用一个简单的字符串查询和一个定义的约束选项,类似于
cat-mytag:dog
。但这意味着将
mytag
定义为带有
cts:notquery
cts:element-value-query
的自定义约束。我相信你必须用XQuery来写。从长远来看,在不使用XQuery的情况下,在MarkLogic中只能做这么多。

MarkLogic是一个相当大的平台,需要在四天内进行评估。你最终可能会感到困惑而不是知情。是的,情况已经是这样了:-(NotQuery是没有选项的,因为特定的json键可以有任何值,如果它存在的话。因此,我无法提出一个可以在NotQuery中使用的肯定查询。这就引出了我现在面临的另一个问题:如何用一个相对简单的方法使用运算符测试jsonValue?我浏览了整个API文档,但没能找到一些类似于:b.value(b.jsonKey(“id”)、Operator.GT,“123”)。在我看来,只允许进行相等比较,对吗?我不会排除
NotQuery
。如果这是一个cts:query,您可能需要类似
cts:NotQuery(cts:element查询(xs:QName('fubar')、cts:and query(())的内容)
。这看起来很复杂,但它是测试是否缺少给定元素的最有效的方法。它肯定是一个结构化查询,而不是键值查找。不等式查询也可以是结构化的,一个带有
范围运算符的
范围查询
。您可以从