RethinkDB - 带计数和连接的查询

RethinkDB - Query with count and join

我有两个"tables"例如:

1 |约翰

2 |玛丽

3 |彼得

1 | 1 | 'Text'

1 | 1 | 'Text 2'

1 | 2 | 'Text 3'

1 | 3 | 'Text 4'

如何获取每个人的消息数?就像:

(PERSON_ID / 姓名 / 消息)

1 |约翰 | 2

2 |玛丽 | 1

3 |彼得 | 1

这应该可以解决问题:

r.db("so").table("messages")
  .group(r.row('person_id')).count().ungroup()
  .map((result) => {
    return result.merge(r.db("so").table("users").get(result('group')));
  })

结果如下所示:

[
  {"group":1,"id":1,"name":"Dalan","reduction":2},
  {"group":2,"id":2,"name":"Rodger","reduction":3}
]

您可以使用 .merge 方法进一步重命名字段,但这会让您获得想要的连接和分组!

如果您有任何问题,请告诉我。