我想在两个时间戳之间按多个字段进行分组。 我试过像:
r.table('my_table').between(r.time(2015, 1, 1, 'Z'), r.now(), {index: "timestamp"}).group("field_a", "field_b").count()
由于我的桌子很大,所以需要花费很多时间。我开始考虑在查询的“组”部分使用索引,然后我记得在同一个rql中使用多个索引是不可能的。
我可以有效地实现我的需求吗?
答案 0 :(得分:1)
您可以创建复合索引,然后有效地计算任何组的计数,而无需计算所有组:
r.table('my_table').indexCreate('compound', function(row) {
return [row('field_a'), row('field_b'), row('timestamp')];
})
r.table('my_table').between(
[field_a_val, field_b_val, r.time(2015, 1, 1, 'Z')],
[field_a_val, field_b_val, r.now]
).count()