Получить количество документов без загрузки всей коллекции в 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();