我有一个数据集,它有一个布尔属性,如下所示:
{
name: 'Steven',
isQualified: true
}我想要计算一个分区的两边。也就是说,有多少文档合格或不合格。使用一个rethinkdb查询最好的方法是什么?
下面是一个使用underscore.js的示例,但它依赖于查询所有文档并在我的应用程序中处理它们:
results = _.partition(data, 'isQualified').map(_.iteratee('length'))目前我有这个,但感觉效率很低,我假设/希望有更好的方法来做。
r.expr({
'qualified': r.table('Candidate').filter({isQualified: true}).count(),
'unqualified': r.table('Candidate').filter({isQualified: false}).count()
})我如何才能改进这一点,使它更干燥?
发布于 2014-11-22 01:54:07
在isQualified上创建索引
r.table('Candidate').indexCreate("isQualified");然后用它来计数
r.expr({
'qualified': r.table('Candidate').getAll(true, {index: "isQualified"}).count()
'unqualified': r.table('Candidate').getAll(false, {index: "isQualified"}).count(),
})这要快得多,因为服务器不必遍历所有文档,而只需遍历B树。
https://stackoverflow.com/questions/27058083
复制相似问题