5

我有一个 RethinkDB 表,其中的文档看起来像这样:

[
  { "date": Mon Oct 05 2015 19:30:00 GMT+01:00, "category": 1, "name": "Alice" },
  { "date": Wed Oct 07 2015 14:00:00 GMT+01:00, "category": 2, "name": "Ben" },
  { "date": Mon Nov 16 2015 12:30:00 GMT+01:00, "category": 1, "name": "Charles" },
  { "date": Sun Nov 01 2015 22:15:00 GMT+01:00, "category": 1, "name": "Donald" }
  (...)
]

我正在尝试编写一个查询,以便按月/年对我的数据进行分组,然后按类别(在每个组内),然后对子组执行一些聚合。

根据 ReQL 文档 ( https://www.rethinkdb.com/api/javascript/group/ ) 中给出的示例,这是第一步:

r.table("seances").group([r.row("date").month(), r.row("date").year()])

我被困在这里。与group(r.row("category"))会给出错误消息(无法调用group的输出group)。ungroup在第二个之前调用group也不起作用。

知道怎么做吗?(ReQL 看起来非常强大,但与我习惯使用的 lodash 完全不同......)。

4

1 回答 1

5

你可以写sequence.group(FIRST_GROUPING).ungroup().merge(function(row) { return {reduction: row('reduction').group(SECOND_GROUPING).ungroup()}; })

于 2016-07-12T10:56:25.883 回答