Pregunta

Estoy usando Sails-Mongo en mi proyecto y necesito ejecutar una consulta en una colección integrada.Mis datos son algo como lo siguiente:

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

por ejemplo, necesito extraer el comments de autor foo.
Aparentemente, Sails aún no admite esta función, por lo que estaba considerando usar el objeto. db de mongodb-nativo para realizar este tipo de consultas.
Como Sails-mongo usa mongodb-native, ¿puedo tener acceso al objeto db en mi proyecto Sails?¿O necesitaré crear una nueva conexión usando mongodb-native?
Si alguien tiene una idea mejor se lo agradecería.Gracias

¿Fue útil?

Solución

Si todo lo que necesitas hacer es acceso Los comentarios incrustados, Waterline deberían funcionar bien.solo haz lo normal find o findOne, y los comentarios deben ser accesibles en los objetos devueltos.

Si lo necesitas consulta los comentarios, p.e.Para encontrar publicaciones con comentarios de un determinado autor, puede acceder a la página subyacente. mongodb-native colección utilizando el .native() método de su clase de modelo Sails:

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
    });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top