我有一个看起来像这样的模型
Product={
brand :String,
model:String,
price:String,
variant:String}
我需要一个查询,该查询将返回每个品牌的od型号的数量。 例如,假设集合中填充了以下数据
{brand: "bmw", model:"x5", variant:"200hp", price:"30000"}
{brand: "bmw", model:"x5", variant:"300hp", price:"40000"}
{brand: "bmw", model:"x3", variant:"100hp", price:"15000"}
{brand: "fiat", model:"punto", variant:"100hp", price:"10000"}
{brand: "fiat", model:"punto", variant:"80hp", price:"9000"}
我需要一个查询,该查询将返回followig数据:
[{brand:"bmw", number_of_models:"2"}, {"brand":"fiat", number_of_models:"1"}]
任何帮助将不胜感激
答案 0 :(得分:1)
您可以使用mongodb聚合查询$group
。我已经使用了上面给出的示例数据并对其进行了测试。下面的查询工作正常。
Product.aggregate([
{
$group: {
_id: {
"brand": "$brand",
"model": "$model"
},
}
},
{
$group: {
_id: "$_id.brand",
"number_of_models": { $sum: 1 }
}
},
{
$project: {
_id: 0,
brand: "$_id",
number_of_models: 1
}
}
])
结果:
[{
"number_of_models" : 2,
"brand" : "bmw"
},
{
"number_of_models" : 1,
"brand" : "fiat"
}]