Le toArray
la fonction existe sur le Cursor
class du pilote Native MongoDB NodeJS (référence). Le find
La méthode dans MongooseJS renvoie une Query
objet (référence). Il existe plusieurs façons d'effectuer des recherches et de renvoyer des résultats.
Comme il n'y a pas d'appels synchrones dans le pilote NodeJS pour MongoDB, vous devrez utiliser un modèle asynchrone dans tous les cas. Les exemples pour MongoDB, qui sont souvent en JavaScript utilisant la console MongoDB, impliquent que le pilote natif prend également en charge des fonctionnalités similaires, ce qu'il ne fait pas.
var userBlogs = function(username, callback) {
Blog.find().where("author", username).
exec(function(err, blogs) {
// docs contains an array of MongooseJS Documents
// so you can return that...
// reverse does an in-place modification, so there's no reason
// to assign to something else ...
blogs.reverse();
callback(err, blogs);
});
};
Ensuite, pour l'appeler :
userBlogs(req.user.username, function(err, blogs) {
if (err) {
/* panic! there was an error fetching the list of blogs */
return;
}
// do something with the blogs here ...
res.redirect('/');
});
Vous pouvez également faire un tri sur un champ (comme une date de publication de blog par exemple) :
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Le code ci-dessus serait trié par ordre décroissant en fonction d'un champ appelé postDate
(syntaxe alternative :sort({ postDate: -1})
.