【发布时间】:2021-06-24 02:07:59
【问题描述】:
我有一个数据库集合,这是它的文档结构。
{
_id: ObjectId("xxxxddsdsfdfdfdf")
category: electronics
sku: 10902
}
{
_id: ObjectId("dfdfdgfsdfdsgsf")
category: apparels
sku: 90345
}
{
_id: ObjectId("sdfdfdsggfgsgsdgsgsf")
category: electronics
sku: 10345
}
{
_id: ObjectId("dfndsnfkjdfdfsdnfsdf")
category: electronics
sku: 43435
}
我正在尝试查找每个类别的 SKU 总数。 它应该消除重复并保持值不同。例如,electronics: 3, apparels: 1。
我已经写了一个查询,但它给了我一个跨类别的 SKU 总数,这根本不是预期的。
db.ecomm_sku_count.aggregate([
{
$group: {
_id: {
category: '$category',
sku_count: '$sku'
},
total_sku: {
$sum: 1
}
}
},
{
$count: "total_sku_units"
}
])
#output= [ { total_sku_units: 4 } ]
预期的输出必须有点像这样。
[
{ _id: { category: 'electronics', sku_count: 3 } },
{ _id: { category: 'apparels', sku_count: 1} }
]
我正在尝试查找每个类别的不同 SKU 值。
我是 mongo 聚合框架的初学者。如果问题属于菜鸟类型,请原谅我。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework