我有一个集合,存储用户投票值,
我想按
我承认我对聚合函数相当陌生,之前只用过它进行基本计数,但是它对我来说仍然不太清楚,非常感谢任何帮助。您能解释聚合的更多细节就更好了=)
这是我最近的失败尝试:
voteTypeID = 1
代表赞成票,voteTypeID = 2
代表反对票,并且还有一个与另一个集合相关联的loadoutID
。我想按
loadoutID
分组,并获取所有赞成票并减去所有反对票,以获得差异。因此,如果一个载具有20个赞成票和2个反对票,我想得到loadoutID
和18。我承认我对聚合函数相当陌生,之前只用过它进行基本计数,但是它对我来说仍然不太清楚,非常感谢任何帮助。您能解释聚合的更多细节就更好了=)
这是我最近的失败尝试:
LoadoutVotes.aggregate([
{
$group: {
_id: '$loadoutID',
up: { $sum: { voteTypeID: 1}},
down: { $sum: { voteTypeID: 2 }}
}
},
{
$project: {
_id: '$loadoutID',
count: {$subtract: ['$up', '$down']}
}
}
])
JSON数据
{
loadoutID: 'ObjectID-String',
voteTypeID: 1
}