【发布时间】:2021-03-07 04:08:57
【问题描述】:
我有一个复杂的 JSON 对象结构,其中包含 (N) 个嵌入式数组。单个条目是具有两个字段的对象:@name 和 content。我需要在投影阶段过滤它们(不使用$unwind)以获得@name字段等于特定值的特定对象:
productCategory: {$filter: {
input: '$characteristics.attributeGroup.attribute',
as: 'attribute',
cond: {
...?
}}
$characteristics.attributeGroup.attribute 输入返回上述结构。我试图在$cond: { $eq: ['$$attribute.@name', 'averageRating'] } 中使用类似的东西,但它不起作用。
您能帮我在这里找到解决方案吗?
提前致谢!
【问题讨论】:
-
您可以添加一些示例文档而不是图像以及您想要的预期结果吗?在对象或数组中?
-
这是示例 json 内容:pastebin.com/8er3iPMB 预期结果将只是具有该搜索名称的对象,或者至少是具有单个条目的数组。例如:属性:{“@name”:“attributeKey2”,“内容”:“attributeValue2”}
-
@name 属性值是唯一的。不能在任何其他数组/对象中重复
-
你能添加预期的输出吗?这会让事情变得简单
标签: arrays mongodb aggregation-framework projection