【发布时间】:2015-11-16 06:29:27
【问题描述】:
这是我的 MongoDB 集合架构:
company: String
model: String
tags: [String]
我需要聚合它,以便得到以下输出:
[{
"_id": {
"company": "Lenovo",
"model": "T400"
},
"tags": {
tag: "SomeTag"
count: 124 // number of times, this tag was found in `Lenovo T400`
}
}...]
我尝试执行以下操作:
var aggParams = {};
aggParams.push({ $unwind: '$tags' });
aggParams.push({ $group: {
_id: { company: '$company', model: '$model' },
tags: { $push: { tag: '$tags', count: { $sum: 1 } } },
}});
但我收到以下错误:
invalid operator '$sum'
使用aggregation 的正确方法是什么?
【问题讨论】:
-
您的数据与您的架构相矛盾。您的实际数据中的“标签”是什么?一个字符串?还是数组?
-
[String]- 代表一个字符串数组
标签: javascript mongodb mongoose mongodb-query aggregation-framework