【发布时间】:2015-02-12 21:58:34
【问题描述】:
我有一个集合,其中存储用户投票值voteTypeID = 1 表示赞成票,voteTypeID = 2 表示反对票,还有一个 loadoutID 与另一个集合相关联。
我想按loadoutID 分组并接受所有赞成票并减去所有反对票,以获得差异。因此,如果加载有 20 个赞成票和 2 个反对票,我想找回 18 以及 loadoutID .
我承认我对聚合函数还很陌生,之前只将它用于基本计数,但对我来说还没有点击,非常感谢任何帮助。你能解释的越多越好 =)
这是我最近失败的尝试
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
}
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework