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);
});