xquery - 如何基于集合获取计数并在 XQuery 中使用多个元素词查询?
问题描述
试图根据不同的过滤器和一个集合来计算汽车的数量。即使我们看到多辆满足要求的汽车,查询仍返回计数 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", "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:element-word-query
需要使用时使用cts:json-property-word-query
:https ://docs.marklogic.com/cts:json-property-word-query
要测试 null,我相信您应该使用:
cts:json-property-value-query("propertyName", json:null())
推荐阅读
- c# - 如何复制数组?
- c# - 在 RouteAttribute 上访问自定义属性 DescriptionAttribute
- python - TensorFlow 最大化目标而不是最小化
- css - 如何更改下一页上的复选框颜色?
- firebase - 使用 Cloud Firestore 在 Ionic 中聊天
- api - 统计和细分我收到的推文
- kubernetes - 如何在 Kubernetes 中与 sidecar 容器中的 pod 通信?
- spring - Spring Starter Security 未进行身份验证
- elasticsearch - 有没有办法优化这个 CrateDB 关系查询?
- c# - 清除 Web 浏览器 cookie winforms C#