我正在使用 MarkLogic Java API 搜索存储在 MarkLogic 9 集合中的 JSON 文档。我的 JSON 结构如下
{
"time": "2021-02-09T11:09:53",
"payload": {
"a": "v1",
"b": "v2",
"c": [
{
"d": {
"a": "v1",
"b": "v2"
}
}
]
}
}
我正在尝试搜索/payload/a=v1 和 /payload/b=v2但搜索还会返回/payload/c/d/a=v1 和 /payload/c/d/b=v2的所有文档
这是我的Java代码
StructuredQueryBuilder sqb = queryManager.newStructuredQueryBuilder();
List<StructuredQueryDefinition> list = new ArrayList<>();
list.add(sqb.collection("collectionName"));
StructuredQueryDefinition a = sqb.value(sqb.jsonProperty("a"), "v1");
StructuredQueryDefinition b = sqb.value(sqb.jsonProperty("b"), "v2");
list.add(sqb.and(sqb.containerQuery(sqb.jsonProperty("payload"), sqb.and(a, b)))));
StructuredQueryDefinition definition = sqb.and(list.toArray(new StructuredQueryDefinition[list.size()]));
DocumentPage page = docManager.search(definition, 1L);
任何帮助将不胜感激。
谢谢,AK