Mongodb 如何使用Mongo聚合从数组创建不同的项
我很难理解如何在Mongo中使用聚合管道 鉴于下列文件的清单:Mongodb 如何使用Mongo聚合从数组创建不同的项,mongodb,aggregate,Mongodb,Aggregate,我很难理解如何在Mongo中使用聚合管道 鉴于下列文件的清单: db.disks.insertMany([ {u id:“香草圣代”,关键词:[“香草”、“冰淇淋”、“沙漠”], {{u id:“香草蛋糕”,关键词:[“香草”、“蛋糕”、“烘焙”、“沙漠”], {u id:“巧克力蛋糕”,关键词:[“巧克力”、“蛋糕”、“烘焙”、“沙漠”] ]) 如何创建一个聚合,该聚合将按关键字返回不同关键字的列表和文档计数: [ {u id:“香草”,“伯爵”:2}, {u id:“冰淇淋”,“计数”:1
db.disks.insertMany([
{u id:“香草圣代”,关键词:[“香草”、“冰淇淋”、“沙漠”],
{{u id:“香草蛋糕”,关键词:[“香草”、“蛋糕”、“烘焙”、“沙漠”],
{u id:“巧克力蛋糕”,关键词:[“巧克力”、“蛋糕”、“烘焙”、“沙漠”]
])
如何创建一个聚合,该聚合将按关键字
返回不同关键字的列表和文档计数:
[
{u id:“香草”,“伯爵”:2},
{u id:“冰淇淋”,“计数”:1},
{u id:“沙漠”,“伯爵”:3},
{u id:“烘焙”,“计数”:2},
{u id:“蛋糕”,“计数”:2},
{u id:“巧克力”,“计数”:1}
]
您可以使用$unwind
和$group
解构和重建阵列
db.collection.aggregate([
{ $unwind: "$keywords" },
{
$group: {
_id: "$keywords",
count: { $sum: 1 }
}
}
])
工作您可以使用“展开”和“组”操作符来实现这一点
db.collection.aggregate([ { "$unwind": { path: "$keywords" } }, { "$group": { "_id": "$keywords", "count": { $sum: 1 } } }, ])
这应该能奏效!:)
我正在连接MongoDB游乐场。答案对您有帮助吗?完美解决方案谢谢!