【问题标题】:Get single array from array of array in mongoose aggregate pipeline从猫鼬聚合管道中的数组数组中获取单个数组
【发布时间】:2021-04-15 15:21:18
【问题描述】:

我有一个这样的集合(我从上一个管道条件中得到的):

[
{_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 的新手,所以我不知道哪个聚合属性可以在这里工作。

请帮助我,我认为这是一项简单的任务,但由于缺乏知识,我无法做到。

【问题讨论】:

    标签: mongodb mongoose mean-stack


    【解决方案1】:
    { $unwind: "$field" },
    { $replaceRoot: { newRoot: "$field" } }
    

    Playground


    对于独特的对象,在$unwind 阶段之后尝试$group 阶段,

      {
        $group: {
          _id: "$field.name",
          field: { $first: "$field" }
        }
      },
    

    Playground

    【讨论】:

    • 不要为投票而烦恼,只需按照how-to-ask问题的说明进行操作,
    • 实际上我也只想要使用 $group 和 $addToSet 实现的唯一对象(如示例中所示)。我希望您将使用此更新答案,以便其他人也可以得到帮助:)
    猜你喜欢
    • 2020-10-25
    • 2017-03-30
    • 2021-04-14
    • 2016-01-21
    • 1970-01-01
    • 2022-01-26
    • 2022-01-18
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多