Обычно у вас есть несколько вариантов, но регистр пустого массива особенно трудно различить.Это связано с тем, что оно не является ни пустым строковым значением, ни нулевым, но свойство действительно присутствует.
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'), '>', '')
HTH!