如何在不将整个结果集加载到内存中的情况下计算查询结果?
计算查询返回的文档的简单方法是:
var q = model.query('mycollection', { date: today });
q.fetch(function() {
var length = q.get().length;
});
但是这会将整个结果集加载到内存中并在javascript中“计算”一个数组。当您有大量数据时,您不想这样做。我想。
计算底层的mongodb集合相当复杂,因为LiveDB(我认为它是LiveDB)为一个derbyjs文档创建了许多mongodb文档。
互联网从2013年开始指向此google groups thread,但其中描述的解决方案(将$count: true
置于查询选项中)似乎无法在DerbyJS 0.6和目前的mongodb。“
query.extraRef
为undefined
。
答案 0 :(得分:1)
这样做就像在google群组线程中所描述的那样。但query.extraRef
现在是query.refExtra
。
示例:
var q = model.query('mycollection', { $count: true, date: today });
q.refExtra('_page.docsOfToday');
q.fetch();