#mongodb #meteor
#mongodb #метеор
Вопрос:
Вот мои входные и выходные данные в оболочке mongodb:
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);
Вот моя консоль:
I20161004-11:43:42.910(0)? newCurrentRank 12
Комментарии:
1. Всего в коллекции 12 пользователей.
Ответ №1:
Это потому count()
, что метод в Meteor возвращает количество документов из курсора, которые соответствуют запросу. Сама по себе передача запроса в качестве аргумента не повлияет на количество. Следовательно, в вашем примере выше он возвращал все 12 документов, несмотря на передачу объекта запроса в качестве аргумента, счетчик основан на find()
курсоре, который возвращает все документы в коллекции, поскольку он был вызван без какого-либо запроса.
Что вам нужно, так это вызвать find()
курсор с объектом запроса, а затем вызвать count()
метод:
var newCurrentRank = Meteor.users.find({ "profile.score": { "$gt": 50 } }).count();
console.log("newCurrentRank", newCurrentRank);