Question

J'utilise sails-mongo dans mon projet et je dois exécuter une requête dans une collection intégrée.Mes données ressemblent à ceci :

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

par exemple, je dois extraire le comments de l'auteur foo.
Apparemment, Sails ne prend pas encore en charge cette fonctionnalité, j'envisageais donc d'utiliser l'objet db de mongodb-natif pour faire ce genre de requête.
Comme sails-mongo utilise mongodb-native, puis-je avoir accès à l'objet db dans mon projet sails ?Ou devrai-je créer une nouvelle connexion en utilisant mongodb-native ?
Si quelqu'un a une meilleure idée, je lui en serais reconnaissant.Merci

Était-ce utile?

La solution

Si tout ce que vous avez à faire est accéder les commentaires intégrés, Waterline devrait fonctionner correctement.Fais juste une chose normale find ou findOne, et les commentaires doivent être accessibles sur les objets renvoyés.

Si tu as besoin de requête les commentaires, par ex.pour trouver des articles avec des commentaires d'un certain auteur, vous pouvez accéder au sous-jacent mongodb-native collecte à l'aide du .native() méthode de votre classe de modèle 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
    });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top