Mongodb 我如何统计mongoose中有特定标准的用户?

Mongodb 我如何统计mongoose中有特定标准的用户?,mongodb,mongoose,Mongodb,Mongoose,我有一个简单的排名计数,我必须这样做,以给我的用户排名 是这样的: this.model('User').count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){ rankToReturn = countNum + 1; console.log('rankToReturn',rankToReturn);

我有一个简单的排名计数,我必须这样做,以给我的用户排名

是这样的:

this.model('User').count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
            rankToReturn = countNum + 1;
             console.log('rankToReturn',rankToReturn);
             deferred.resolve( rankToReturn );
        });
 this.model('User').find({'myClub.club':12345678}).count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
                rankToReturn = countNum + 1;
                 console.log('rankToReturn',rankToReturn);
                 deferred.resolve( rankToReturn );
            });
 this.model('User').count({'$and':{'myClub.scoreStamp': {'$gt' : this.myClub.scoreStamp} }}).exec(...);
其中scoreStamp是这样的分数:4.14、3.11等等

我想在此查询中添加另一个字段,并选中如下内容: 计算所有具有相同X参数的用户,给我在其中的排名,我想知道最快的方法是什么:

我是否应该先查找,然后计数?如下所示:

this.model('User').count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
            rankToReturn = countNum + 1;
             console.log('rankToReturn',rankToReturn);
             deferred.resolve( rankToReturn );
        });
 this.model('User').find({'myClub.club':12345678}).count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
                rankToReturn = countNum + 1;
                 console.log('rankToReturn',rankToReturn);
                 deferred.resolve( rankToReturn );
            });
 this.model('User').count({'$and':{'myClub.scoreStamp': {'$gt' : this.myClub.scoreStamp} }}).exec(...);
或者可以这样做:

this.model('User').count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
            rankToReturn = countNum + 1;
             console.log('rankToReturn',rankToReturn);
             deferred.resolve( rankToReturn );
        });
 this.model('User').find({'myClub.club':12345678}).count({'myClub.scoreStamp': {'$gt':this.myClub.scoreStamp}}).exec(function(err,countNum){
                rankToReturn = countNum + 1;
                 console.log('rankToReturn',rankToReturn);
                 deferred.resolve( rankToReturn );
            });
 this.model('User').count({'$and':{'myClub.scoreStamp': {'$gt' : this.myClub.scoreStamp} }}).exec(...);

查询此类内容的正确且最快的方法是什么?

若要计算两个术语均为真的文档,请将两个术语放入原始
count
调用的相同条件对象中,该调用提供隐式and查询:

this.model('User').count({
“myClub.club”:12345678,
'myClub.scoreStamp':{'$gt':this.myClub.scoreStamp}
}).exec(函数(err,countNum){
rankToReturn=countNum+1;
console.log('rankToReturn',rankToReturn);
延迟。解决(rankToReturn);
});