2016-07-26 46 views
0

Ich habe zwei "Tabellen" wie:RethinkDB - Abfrage mit Zahl und kommen

  • PEOPLE (ID/NAME)

1 | JOHN

2 | MARY

3 | PETER

  • Nachrichten (ID/PERSON_ID/TEXT)

1 | 1 | 'Text'

1 | 1 | 'Text 2'

1 | 2 | 'Text 3'

1 | 3 | 'Text 4'

Wie kann ich die Anzahl der Nachrichten jeder Person erhalten? Genau wie:

(PERSON_ID/NAME/MELDUNGEN)

1 | JOHN | 2

2 | MARIA | 1

3 | PETER | 1

Antwort

1

dies den Trick tun soll:

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'))); 
    }) 

Ergebnis sieht aus wie:

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

Sie die Felder umbenennen weiter, wie Sie mit der .merge Methode mögen, aber das bekommt man die Verbindung und Gruppierung, die Sie wollten!

Lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben.