我有一个包含嵌套文档的父文档:
parent_mapping = {
_id: { path: "id" },
properties: {
id: { type: "integer" },
content: { type: "string" },
...
children: {
type: "nested",
properties: {
id: { type: "integer" },
main_entry: { type: "boolean" },
...
我想获取所有嵌套文档中main_entry设置为“false”的所有父文档。
filter: {
nested: {
path: "entries",
filter: {
not: {
term: { "entries.main_entry" => "true" }
}
}
}
}
目前这给了我所有拥有任何嵌套文档的父母,其中main_entry设置为“false”。
我正在努力排除将main_entry设置为“true”的嵌套子项的结果。
答案 0 :(得分:1)
问题是过滤器没有将条件应用于所有嵌套条目;相反,它过滤掉了具有与条件匹配的0个条目的文档。我的同事指出,通过在嵌套过滤器之外移动否定,我可以得到我想要的结果。
filter: {
not: {
nested: {
path: "entries",
filter: {
term: { "entries.main_entry" => "true" }
}
}
}
}