Коллекция счетчиков MongoDB Node.js - PullRequest
12 голосов
/ 16 февраля 2012

Я пытаюсь взаимодействовать с MongoDB через Node.js и у меня возникли некоторые проблемы с методом count (). Я использую node-mongodb-native , и похоже, что то, что я делаю, должно работать. Пример моего кода:

var get_total_num_docs = function(db_client, query, cb){
  db_client.collection(query['collection'], function(e, coll) {
    coll.find(query.params, query.options, function (e, cursor) {
      cursor.count(function (e, count) {
        console.log(count);
        return cb(e, count);
      });
    });
  });
};

Я уверен, что все существует (иначе, как coll и cursor определены), но оно работает только в том случае, если мое поле query.params пустое (то есть, находим количество всей коллекции) Поэтому, если я пытаюсь запустить поиск с любым селектором, поиск работает, но затем он отказывается рассчитывать на возвращенный курсор. Из того, что я читал в Интернете, это выглядит как правильный способ сделать это, но, очевидно, что-то не так. Спасибо за любую помощь!

1 Ответ

24 голосов
/ 18 февраля 2012

Если вам не нужен курсор, вы должны написать свой код так:

var get_total_num_docs = function(db_client, query, cb){
  db_client.collection(query['collection'], function(e, coll) {
    coll.find(query.params, query.options).count(function (e, count) {
      console.log(count);
      return cb(e, count);
    });
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...