如何基于集合获取计数,并在XQuery中使用多元素word查询?
尝试根据不同的过滤器在一个集合内获取汽车数量。即使我们看到多辆车满足要求,查询仍返回计数0如何基于集合获取计数,并在XQuery中使用多元素word查询?,xquery,marklogic,marklogic-8,Xquery,Marklogic,Marklogic 8,尝试根据不同的过滤器在一个集合内获取汽车数量。即使我们看到多辆车满足要求,查询仍返回计数0 fn:count(cts:search(fn:collection("com.cars"), cts:and-query(( cts:element-word-query(xs:QName("exteriorColor"), "red", "wildcarded" ), cts:element-word-query(xs:QName("interiorColor"), "gray",
fn:count(cts:search(fn:collection("com.cars"), cts:and-query((
cts:element-word-query(xs:QName("exteriorColor"), "red", "wildcarded" ),
cts:element-word-query(xs:QName("interiorColor"), "gray", "wildcarded" )
cts:element-word-query(xs:QName("powerSteering"), json:null(), "wildcarded" )
))))
测试数据:
{
"id":1
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":2
"carName":"Toyoto",
"exteriorColor": "blue",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":3
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": "yes"
}
{
"id":4
"carName":"Toyoto",
"exteriorColor": "white",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":5
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": null
}
当您需要使用
cts:json属性词查询时,您正在使用cts:element-word-query
:
要测试null,我认为您应该使用:
cts:json-property-value-query("propertyName", json:null())
这些文件看起来像什么?您确定它们在com.cars
系列中吗<代码>json:null()
以这种方式传递时,计算结果为空序列-这是您想要的吗?文档是json类型(使用数据编辑的问题)。它们都在com.cars
系列中。我正在尝试获取外部颜色为红色和内部颜色为灰色且动力输出为空的汽车数量。此外,在比例上,您需要xdmp:estimate而不是fn:count。