从猫鼬聚合管道中的数组数组中获取单个数组
Get single array from array of array in mongoose aggregate pipeline
我有一个这样的集合(我从上一个管道条件中得到的):
[
{_id:"1","field":[{...obj1},{...obj2}]},
{_id:"2","field":[{...obj3},{...obj1}]},
{_id:"3","field":[{...obj4},{...obj5}]},
{_id:"4","field":[{...obj1},{...obj2}]},
]
我想在管道中添加更多条件以获得:
[{...obj1},{...obj2},{...obj3},{...obj4},{...obj5}]
顺序无关紧要,但我想要 field
中的所有对象。我是 mongo 和 mongoose 的新手,所以我不知道哪种聚合 属性 可以在这里工作。
请帮助我,我认为这是一个简单的任务,但由于缺乏知识我无法做到。
- $unwind解构
field
数组,
- $replaceRoot 将
field
对象替换为 root
{ $unwind: "$field" },
{ $replaceRoot: { newRoot: "$field" } }
对于独特的对象,在 $unwind
阶段之后尝试 $group
阶段,
{
$group: {
_id: "$field.name",
field: { $first: "$field" }
}
},
我有一个这样的集合(我从上一个管道条件中得到的):
[
{_id:"1","field":[{...obj1},{...obj2}]},
{_id:"2","field":[{...obj3},{...obj1}]},
{_id:"3","field":[{...obj4},{...obj5}]},
{_id:"4","field":[{...obj1},{...obj2}]},
]
我想在管道中添加更多条件以获得:
[{...obj1},{...obj2},{...obj3},{...obj4},{...obj5}]
顺序无关紧要,但我想要 field
中的所有对象。我是 mongo 和 mongoose 的新手,所以我不知道哪种聚合 属性 可以在这里工作。
请帮助我,我认为这是一个简单的任务,但由于缺乏知识我无法做到。
- $unwind解构
field
数组, - $replaceRoot 将
field
对象替换为 root
{ $unwind: "$field" },
{ $replaceRoot: { newRoot: "$field" } }
对于独特的对象,在 $unwind
阶段之后尝试 $group
阶段,
{
$group: {
_id: "$field.name",
field: { $first: "$field" }
}
},