Frage

Ich verwende Sails-Mongo in meinem Projekt und muss eine Abfrage in einer eingebetteten Sammlung ausführen.Meine Daten lauten etwa wie folgt:

{
    "_id" : ObjectId("53906c6254f36df504e99b8f"),
    "title"    : "my post"
    "comments" : [ 
        {
            "author" : "foo",
            "comment" : "foo comment"
        },
        {
            "author" : "bar",
            "comment" : "bar comment"
        }        
    ],
    "createdAt" : ISODate("2014-06-05T13:10:58.365Z"),
    "updatedAt" : ISODate("2014-06-05T13:10:58.365Z")
}

Zum Beispiel muss ich das extrahieren comments des Autors foo.
Anscheinend unterstützt Sails diese Funktion noch nicht, daher habe ich darüber nachgedacht, das Objekt zu verwenden db von mongodb-native um diese Art von Abfrage durchzuführen.
Da Sails-Mongo Mongodb-native verwendet, kann ich in meinem Sails-Projekt Zugriff auf das DB-Objekt haben?Oder muss ich eine neue Verbindung mit mongodb-native aufbauen?
Wenn jemand eine bessere Idee hat, wäre ich dankbar.Danke

War es hilfreich?

Lösung

Wenn alles, was Sie tun müssen, ist Zugang Mit den eingebetteten Kommentaren sollte Waterline gut funktionieren.Mach einfach ein normales find oder findOne, und die Kommentare sollten für die zurückgegebenen Objekte zugänglich sein.

Wenn du musst Abfrage die Kommentare, z.B.Um Beiträge mit Kommentaren eines bestimmten Autors zu finden, können Sie auf die zugrundeliegenden zugreifen mongodb-native Sammlung mit der .native() Methode Ihrer Sails-Modellklasse:

Post.native(function(err, collection) {
    if (err) { 
        // handle error getting mongo collection
    }
    collection.find({'comments.author':'foo'}).toArray(function(err, results) {
        // Do something with results
    });
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top