RethinkDB - 带计数和连接的查询
RethinkDB - Query with count and join
我有两个"tables"例如:
- 人物(身份证/姓名)
1 |约翰
2 |玛丽
3 |彼得
- 消息(ID / PERSON_ID / 文本)
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
方法进一步重命名字段,但这会让您获得想要的连接和分组!
如果您有任何问题,请告诉我。
我有两个"tables"例如:
- 人物(身份证/姓名)
1 |约翰
2 |玛丽
3 |彼得
- 消息(ID / PERSON_ID / 文本)
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
方法进一步重命名字段,但这会让您获得想要的连接和分组!
如果您有任何问题,请告诉我。