RethinkDB - 使用计数和连接进行查询

时间:2016-07-26 20:01:36

标签: rethinkdb rethinkdb-javascript

我有两个“表格”,例如:

  • 人(身份/姓名)

1 | JOHN

2 | MARY

3 | PETER

  • 消息(ID / PERSON_ID / TEXT)

1 | 1 | '文本'

1 | 1 | '文字2'

1 | 2 | '文字3'

1 | 3 | '文字4'

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

(PERSON_ID / NAME / MESSAGES)

1 |约翰| 2

2 |玛丽| 1

3 |彼得| 1

1 个答案:

答案 0 :(得分: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方法进一步重命名字段,但这可以获得您想要的连接和分组!

如果您有任何疑问,请与我们联系。