toArray
funktionen finns på Cursor
klass från Native MongoDB NodeJS-drivrutinen (referens). find
metod i MongooseJS returnerar en Query
objekt (referens). Det finns några sätt du kan göra sökningar och returnera resultat.
Eftersom det inte finns några synkrona anrop i NodeJS-drivrutinen för MongoDB, måste du alltid använda ett asynkront mönster. Exempel på MongoDB, som ofta finns i JavaScript med MongoDB-konsolen, antyder att den inbyggda drivrutinen också stöder liknande funktionalitet, vilket den inte gör.
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);
});
};
Sedan, för att kalla det:
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('/');
});
Du kan också sortera på ett fält (som ett blogginläggsdatum till exempel):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Ovanstående kod skulle sorteras i fallande ordning baserat på ett fält som heter postDate
(alternativ syntax:sort({ postDate: -1})
.