Domanda

Sto usando Vele-Mongo nel mio progetto e ho bisogno di eseguire una query in una collezione incorporata. I miei dati sono qualcosa come il seguente:

{
    "_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")
}
.

Ad esempio, ho bisogno di estrarre il comments dell'autore foo.
Apparentemente le vele non supportano ancora questa funzione, quindi stavo pensando di usare l'oggetto db di mongodb-nativo per fare questo tipo di query.
Come vele-Mongo usa Mongodb-Native, posso avere accesso a DB oggetto nel mio progetto di vele?O avrò bisogno di creare una nuova connessione usando MongoDB-Native?
Se qualcuno ha un'idea migliore sarei grato.Grazie

È stato utile?

Soluzione

Se tutto quello che devi fare è accesso i commenti embedded, la linea di galleggiamento dovrebbe funzionare bene.Basta fare un normale find o findOne e i commenti dovrebbero essere accessibili sugli oggetti restituiti.

Se hai bisogno di query i commenti, ad es.Per trovare messaggi con commenti di un determinato autore, è possibile accedere alla collezione mongodb-native sottostante utilizzando il metodo .native() della classe del modello delle vele:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top