标签: mongodb nosql mongodb-query
我有一组条目,其中每个项目都有Extra数组,每个项目都有自己的制造商。我想要的是将具有相同制造商的额外阵列互相连接。
`db.products.aggregate([ { $project: {allValues: { $setUnion: "$Extras" }, _id: "$Manufacturer" } }, ])`
我在上面的查询中使用过,然后每个单独的制造商如下所示。
但是我想要的是如果制造商是菲亚特,将所有的Extras(allvalues)组合在一起
答案 0 :(得分:2)
您可以使用$unwind来获取每个文档一个Extras,然后使用$group通过Manufacturer来$addToSet来获取唯一值:
Extras
Manufacturer
db.products.aggregate([ { $unwind: "$Extras" }, { $group: { _id: "$Manufacturer", allValues: { $addToSet: "$Extras" } } } ])