在目标文档之前/之后查找x文档

时间:2014-10-16 10:36:03

标签: javascript mongodb mongoose

我试图使用MongooseJS构建相对排行榜。鉴于以下数据(简化):

{
   user: 1,
   score: 10
},
{
   user: 1,
   score: 5
},
{
   user: 2,
   score: 3
},
{
   user: 3,
   score: 5
},
{
   user: 3,
   score: 3
},
{
   user: 4,
   score: 2
}

以下查询:

ActionLog.model.aggregate()
        .group({_id: '$user',totalScore:{$sum:'$score'}})
        .sort('-totalScore')
        .limit(3)
        .exec(function(err, logs){
            if(err) { return res.apiError('1103', Errors['1103']); }
            User.model.populate(logs, {path: '_id', select:'username'}, function(err) {
                return res.apiResponse(logs);
         });
});

我会得到3个用户(用户1,3和2)的结果,其总分数按总分数排序。哪个效果很好。不过我说我想得到一个相对排行榜,在那里我得到了前方和后方球员的高分。例如,玩家2的相对排行榜必须返回如下内容:

{
   _id: {
        "_id": "3",
        "username": "David"
   },
   totalScore: 8
},
{
   _id: {
        "_id": "2",
        "username": "Elsa"
   },
   totalScor: 3
},
{
   _id: {
        "_id": "4",
        "username": "John"
   },
   totalScore: 2
}

我如何得到它?

0 个答案:

没有答案