为什么我的Meteor应用程序大于($ gt)计数与mongdb shell不同?

时间:2016-10-04 11:55:34

标签: mongodb meteor

这是我在mongodb shell中的输入和输出:

n = 10
X = zeros(Int64,n,n) # 8-byte integers
ccall((:arr_, "./test.so"), Void, (Ptr{Int64}, Ptr{Int64}), &n, X)

这是我的代码:

meteor:PRIMARY> db.users.count({"profile.score": {$gt: 50}})
2

这是我的控制台:

var allUsers = Meteor.users.find();
var newCurrentRank = allUsers.count({"profile.score": {$gt: 50}});
console.log("newCurrentRank", newCurrentRank);

1 个答案:

答案 0 :(得分:2)

这是因为Meteor中的 count() 方法会返回光标中与查询匹配的文档数。本身将查询作为参数传递不会影响计数。因此,在上面的示例中,它返回了所有12个文档,尽管将查询对象作为参数传递,但计数基于find()游标,该游标返回集合中的所有文档,因为它是在没有任何查询的情况下调用的。 / p>

您需要使用查询对象调用find()光标,然后调用 count() 方法:

var newCurrentRank = Meteor.users.find({ "profile.score": { "$gt": 50 } }).count();
console.log("newCurrentRank", newCurrentRank);