2016-07-26 35 views
0

我有兩個 「表」,如:RethinkDB - 查詢與計數和加入

  • PEOPLE(ID/NAME)

1 | JOHN

2 | MARY

3 | PETER

  • 消息(ID/PERSON_ID/TEXT)

1 | 1 | 'Text'

1 | 1 | 'Text 2'

1 | 2 | 'Text 3'

1 | 3 | 'Text 4'

我怎樣才能得到每個人的消息數量?就像:

(PERSON_ID /姓名/消息)

1 | JOHN | 2

2 | MARY | 1

3 | PETER | 1

回答

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方法一樣,但是這個可以讓你的加盟,分組你想要的!

讓我知道如果您有任何問題。