【问题标题】:MongoDB Setunion and Group byMongoDB Setunion 和 Group by
【发布时间】:2019-03-10 04:09:31
【问题描述】:

我有一组条目,其中每个项目都有额外的数组,每个项目都有自己的制造商。我想要的是加入具有相同制造商的额外数组。

`db.products.aggregate([

 { $project: {allValues: { $setUnion: "$Extras" }, _id: "$Manufacturer" } },

])`

我使用了上面的查询,然后每个单独的制造商如下所示。

但我想要的是如果制造商是菲亚特,将所有附加值(所有值)组合在一起

【问题讨论】:

    标签: mongodb nosql mongodb-query


    【解决方案1】:

    您可以使用$unwind 为每个文档获取单个Extras,然后$group by Manufacturer 使用$addToSet 获取唯一值:

    db.products.aggregate([
        {
            $unwind: "$Extras"
        },
        {
            $group: {
                _id: "$Manufacturer",
                allValues: { $addToSet: "$Extras" }
            }
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多