我正在处理一个查询,该查询将过滤具有像这样的空 JSON 数组节点的文档(输出属性):
{
"Id": "0aec6b50-03ff-48c9-ac35-1b5e7640a892",
"Input": "00000000-0000-0000-0000-000000000000",
"Output": [
]
}
现在我正在使用这个查询:
cts.orQuery([
cts.notQuery(cts.jsonPropertyValueQuery('Input','00000000-0000-0000-0000-000000000000')),
cts.jsonPropertyValueQuery('Output', '*', 'wildcarded')
])
它正在过滤所有带有空(空 GUID)Input
字段的文档,并且应该(但不是)过滤带有空(空数组)的文档Output
。
它正在处理文档:
{
"Id": "0aec6b50-03ff-48c9-ac35-1b5e7640a892",
"Input": "00000000-0000-0000-0000-000000000000",
"Output": ""
}
我认为这是因为空数组是 MarkLogic 的一个值。有没有人有类似的问题?如何查询空 JSON 数组?
编辑:
非空消息(应该返回)如下所示:
{
"Id": "0aec6b50-03ff-48c9-ac35-1b5e7640a892",
"Input": "00000000-0000-0000-0000-000000000000",
"Output": [
"91ad81fe-9c82-4090-b6a9-a918f901de46"
]
}