gpt4 book ai didi

javascript - Marklogic 中的非空值 - 在 Marklogic 中搜索具有非空值的数组中的属性的 JSON 文档

转载 作者:行者123 更新时间:2023-11-29 18:44:56 24 4
gpt4 key购买 nike

Marklogic中需要搜索的JSON文档结构

{  
"MESSAGEID":"18878285",
"ORDERNUMBER":["2295796"],
"CATEGORY":"F3702200000"
}

我想使用 Javascript 在 Marklogic 中搜索由非空 ORDERNUMBER 组成的所有 JSON 文档的 URI

我正在使用以下查询,但它仍然显示由 "ORDERNUMBER":[]

组成的文档的 URI
cts.uris("",null,cts.andQuery
([
cts.jsonPropertyValueQuery("ORDERNUMBER", "*", "wildcarded"),
cts.notQuery(cts.jsonPropertyValueQuery("ORDERNUMBER",""))
])
);

最佳答案

您通常有几个选项,但空数组的情况尤其难以区分。这是因为它既不是空字符串值,也不是 null,但该属性确实存在。

cts.jsonPropertyScopeQuery("ORDERNUMBER", cts.trueQuery())将匹配任何具有该属性的文档。

cts.jsonPropertyValueQuery("ORDERNUMBER", "")火柴ORDERNUMBER: ""ORDERNUMBER: [""] .

cts.jsonPropertyValueQuery("ORDERNUMBER", null)火柴ORDERNUMBER: null .

cts.jsonPropertyValueQuery("ORDERNUMBER", "?*", "wildcarded")火柴ORDERNUMBER: null (不知道为什么),ORDERNUMBER: "xx" , 和 ORDERNUMBER: ["xx"] ,但前提是您启用过滤(这需要 cts.search ),或者您能够找到适当的通配符设置。

老实说,我认为最简单的解决方案是在 ORDERNUMBER 上放置一个范围索引。 ,并使用范围查询:

cts.rangeQuery(cts.pathReference('ORDERNUMBER'), '>', '')

喂!

关于javascript - Marklogic 中的非空值 - 在 Marklogic 中搜索具有非空值的数组中的属性的 JSON 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com