1

如何在不将整个结果集加载到内存的情况下计算查询结果?

计算查询返回的文档的简单方法是:

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

但这会将整个结果集加载到内存中并在 javascript 中“计数”一个数组。当您有大量数据时,您不想这样做。我认为。

计算底层 mongodb 集合相当复杂,因为 LiveDB(我认为它是 LiveDB)为一个 derbyjs 文档创建了许多 mongodb 文档。

互联网从 2013 年开始指向这个google groups 线程,但是那里描述的解决方案(放入$count: true查询选项)似乎在 DerbyJS 0.6 和当前的 mongodb 中 query.extraRef不起作用undefined

4

1 回答 1

1

就像谷歌组线程中描述的那样完成。不过query.extraRef是现在query.refExtra

例子:

var q = model.query('mycollection', { $count: true, date: today });
q.refExtra('_page.docsOfToday');
q.fetch();
于 2015-03-16T16:51:45.973 回答