我有两个“表”,例如:
- 人(ID / 姓名)
1 | 约翰
2 | 玛丽
3 | 彼得
- 消息(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 | 约翰
2 | 玛丽
3 | 彼得
1 | 1 | '文本'
1 | 1 | '文本 2'
1 | 2 | '文本 3'
1 | 3 | '文本 4'
如何获取每个人的消息数量?就像:
(PERSON_ID / NAME / MESSAGES)
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
方法根据需要进一步重命名字段,但这会为您提供所需的连接和分组!
如果您有任何问题,请告诉我。