Получить количество документов без загрузки всей коллекции в DerbyJS 0.6

Как подсчитать результаты запроса, не загружая весь набор результатов в память?

Простой способ подсчета документов, возвращаемых запросом:

var q = model.query('mycollection', { date: today });
q.fetch(function() {
    var length = q.get().length;
});

Но это загрузит весь набор результатов в память и "посчитает" массив в javascript. Когда у вас много данных, вы не хотите этого делать. Я думаю.

Подсчет базовой коллекции mongodb довольно сложен, поскольку LiveDB (я думаю, что это LiveDB) создает множество документов mongodb для одного документа derbyjs.

В интернете указывают на эту ветку гугл групп с 2013 года, но решение описано там (ставить $count: true в опциях запроса), похоже, не работает в DerbyJS 0.6 и текущей версии mongodb." query.extraRef является undefined,

1 ответ

Решение

Это делается так, как описано в ветке групп Google. Но query.extraRef сейчас query.refExtra,

Пример:

var q = model.query('mycollection', { $count: true, date: today });
q.refExtra('_page.docsOfToday');
q.fetch();
Другие вопросы по тегам