在 DerbyJS 0.6 中无需加载整个集合即可获取文档数

Get count of documents without loading the whole collection in DerbyJS 0.6

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

对查询返回的文档进行计数的简单方法是:

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

但这会将整个结果集加载到内存中,并且 "count" 是 javascript 中的一个数组。当您有大量数据时,您不想这样做。我觉得。

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

互联网从 2013 年开始指向这个 google groups thread,但是那里描述的解决方案 (将 $count: true 放入查询选项) 似乎没有在 DerbyJS 0.6 和当前 mongodb 中工作。”。 query.extraRefundefined.

它是按照 google 组线程中描述的那样完成的。但是 query.extraRef 现在是 query.refExtra.

示例:

var q = model.query('mycollection', { $count: true, date: today });
q.refExtra('_page.docsOfToday');
q.fetch();