如何基于集合计数并使用XQuery进行多元素字查询?

Moh*_*han 2 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", "wildcarded" )
    cts:element-word-query(xs:QName("powerSteering"),  json:null(), "wildcarded" )
    ))))
Run Code Online (Sandbox Code Playgroud)

测试数据:

{
      "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
    } 
Run Code Online (Sandbox Code Playgroud)

Rob*_* S. 6

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())
Run Code Online (Sandbox Code Playgroud)