的长度使用MongoDB的聚合框架来组我有一个集合,它看起来是这样的:通过阵列
{
"_id": "id0",
"name": "...",
"saved_things": [
{ ... },
{ ... },
{ ... },
]
}
{
"_id": "id1",
"name": "...",
"saved_things": [
{ ... },
]
}
{
"_id": "id2",
"name": "...",
"saved_things": [
{ ... },
]
}
等等
我想使用MongoDB的聚合框架,以便拿出用直方图结果告诉有多少用户有一定数量的saved_things
。例如,对于数据集上面它可能返回类似:
{ "_id": 1, "count": 2 },
{ "_id": 3, "count": 1 }
我试过的聚集功能的各种组合像下面的一个,但没有正确地制定。 (我得到的,我要对此非常错误的感觉。)
collection.aggregate([
{ $unwind: "$saved_things" },
{ $group: "$_id", count: { $sum: 1 } } },
{ $group: "$count", number: { $sum: 1 } } },
{ $sort: { number: -1 } }
], function(err, result) {
console.log(result);
});
这可能与蒙戈的总框架,或者我会与地图更好减少功能?
你的意思是_how许多用户有一定数量的saved_things subcollectin_?鉴于'saved_thing',你想知道哪些用户有'saved_things'和多少?就是它? –
嗯,我的措辞似乎是混乱,对此感到遗憾!我认为示例输出最能说明我在找什么,但我会试着再次描述它。 我想为collection中的每个用户获取'saved_things'中的对象数,并聚合该计数的频率。它用于生成用户数量“saved_things”的直方图(如果有意义的话)。 让我知道如果这仍然以任何方式混淆。 –