2016-04-27 16 views
0

Ich habe eine RQL-Abfrage, die wie folgt aussieht:Wie gebe ich an, welches Feld ich gerade bestelle?

r.table('builds') 
    .orderBy(r.desc('createdDate')) 
    .limit(100) 
    .eqJoin('userId', r.table('users')) 
    .run(connection) 

Beide builds und users haben ein createdDate Feld. Ich erwarte, dass die Ergebnisse nach der createdDate der builds Tabelle sortiert werden, aber ich bekomme sie tatsächlich in der Reihenfolge der users Tabelle.

Wie kann ich angeben, dass ich die builds Tabelle createdDate verwenden möchte?

Antwort

0

Mein Problem etwas klar ist erklärt in the RethinkDb docs. zum Beispiel aussehen without()

Meine Frage wie folgt aussehen endete beteiligt: ​​

r.table('builds') 
    .eqJoin('userId', r.table('users')) 
    .without({right: 'createdDate'}) 
    .zip() 
    .orderBy(r.desc('createdDate')) 
    .limit(100) 
    .run(connection) 

Im Folgenden auch schien zu funktionieren, aber ordered wird nicht empfohlen.

r.table('builds') 
    .orderBy(r.desc('createdDate')) 
    .eqJoin('userId', r.table('users'), {ordered: true}) 
    .limit(100) 
    .run(connection) 

Während dies funktioniert, verstehe ich nicht vollständig. Jede zusätzliche Erklärung oder Antworten sind herzlich willkommen.

0

Nach der Join, sollten Sie ein 'richtiges' Objekt haben, das Ihre Benutzer enthält, mit denen Sie arbeiten können. Etwas wie:

r.table('builds') 
.eqJoin('userId', r.table('users')) 
.orderBy(r.desc('right.createdDate')) 
.limit(100) 
.run(connection) 
+0

Können Sie mich an die richtige Stelle in der Dokumentation verweisen, wo ich das entdeckt haben könnte? – thealexbaron