Javascript 在单个查询中选择文档的几个元素
我想从满足cts.Query的文档中获取一些选定的元素。我在MarkLogic上使用javascript文档如下-Javascript 在单个查询中选择文档的几个元素,javascript,marklogic,marklogic-8,Javascript,Marklogic,Marklogic 8,我想从满足cts.Query的文档中获取一些选定的元素。我在MarkLogic上使用javascript文档如下- <a:root xmlns:a = 'some-ns'> <a:id>some-id</a:id> <a:some-element1/> <a:some-element2/> <a:some-element3/> . . <a:number fiel
<a:root xmlns:a = 'some-ns'>
<a:id>some-id</a:id>
<a:some-element1/>
<a:some-element2/>
<a:some-element3/>
.
.
<a:number field='field1'>3</a:number>
<a:number field='field2'>4</a:number>
.
.
</a:root>
但这给了我3个查询值元组的所有结果组合,类似于笛卡尔积
如何获得所需的结果?如果启用了适当的单词位置索引,可以尝试使用ordered选项: 仅当第一个词典中的值 出现在第二个词典中的值之前。需要那个词 两个词典都可以启用位置 我认为这不会阻止交叉产品,但至少会减少交叉产品 尽管如此,对cts.values和cts.valuetuple执行多个调用并没有什么错。您可以执行三个调用,使用cts.uriReference请求uri值组合,并使用uri关联结果 嗯
cts.valueTuples(
[
cts.elementReference(fn.QName(a, 'id')),
cts.elementAttributeReference(fn.QName(a, 'number'), xs.QName('field')),
cts.elementReference(fn.QName(a, 'number'))
],
[],
cts.andQuery(
[
<query1>,
<query2>
]
)
)