2014-04-08 6 views
10

Ich verwende Sails.js Version 0.10.0-rc4. Alle Modelle verwenden sails-mysql.Sails.js Abfrage auf einen zugeordneten Wert

Ich versuche, ein Modell abzufragen, das eine "eins-zu-viele" Zuordnung zu einem anderen Modell hat (die Abfrage findet auf der "vielen" Seite statt).

Es sieht ungefähr so ​​aus:

Post.find() 
    .where({ category: category_id }) 
    .populate("category") 
    .exec(...) 

Das gibt mir ein leeres Array zurück aber wenn ich die .populate("category") ich das richtige Ergebnis Set erhalten auslassen.

Ich weiß, dass ich .populate("category") heraus verlassen und dann jedes korrelierende Category-Objekt getrennt abrufen könnte, aber ich frage mich, ob es eine bessere Lösung für dieses Problem gibt.

Antwort

12

Es ist nicht 100% klar, was Sie hier zu tun versuchen. Wenn Ihr Ziel ist, die Kategorien zu filtern, die auf dem Post bevölkert, können Sie tun:

Post.find() 
    .populate("category", {where: { category: category_id }}) 
    .exec(...) 

Wenn Sie nur Post s mit einer bestimmten Kategorie abrufen möchten, würden Sie tun:

Category.findOne(category_id) 
     .populate("posts") 
     .exec(function(e, c) {console.log(c.posts);}) 
+3

Der zweite Schnipsel den Job. Ich möchte Beiträge in einer bestimmten Kategorie erhalten. Das Problem ist, dass ich eine Reihe von verschiedenen Abfragen auf dieser Route ausführen (erhalten Sie Beiträge nach Namen, erhalten Beiträge von Viewcount usw.). Daher möchte ich in der Lage sein, "Beiträge nach Kategorie abrufen" auf ähnliche Weise abzufragen. Weißt du, ob das machbar ist? –

+1

Laufen in dasselbe Szenario .. Btw, @scott das funktioniert nur für Eins-zu-Eins-Verbindung? –

+1

Gleiches Problem hier auch. Dies funktioniert nur für Eins-zu-Eins-Verbindungen und nicht für Eins-zu-Viele oder Viele-zu-Ein. @Lujaw, hast du eine Lösung gefunden? –

1

Original-Beitrag war zu früh

nach Arbeiten für mich (Segel 0,12) mit Bevölkerung:

Post.find({category: category_id}) 
    .populate("category") 
    .exec(...) 

Aber ich bin immer noch verwirrt, die in einer Unterabfrage andere Attribute als id ..

EDIT2 suchen: Scheint, wie tief Abfrage wird noch nicht unterstützt: https://github.com/balderdashy/waterline/issues/266

Verwandte Themen