Подтвердить что ты не робот

Коллекция счетчиков MongoDB Node.js

Я пытаюсь взаимодействовать с 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);
      });
    });
  });
};

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

4b9b3361

Ответ 1

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

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