toArray
funktion findes på Cursor
klasse fra Native MongoDB NodeJS-driveren (reference). find
metode i MongooseJS returnerer en Query
objekt (reference). Der er et par måder, hvorpå du kan foretage søgninger og returnere resultater.
Da der ikke er nogen synkrone opkald i NodeJS-driveren til MongoDB, skal du i alle tilfælde bruge et asynkront mønster. Eksempler på MongoDB, som ofte er i JavaScript ved hjælp af MongoDB-konsollen, antyder, at den oprindelige driver også understøtter lignende funktionalitet, hvilket den ikke 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);
});
};
Så for at kalde 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 også sortere på et felt (som f.eks. en blogindlægsdato):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Ovenstående kode vil sortere i faldende rækkefølge baseret på et felt kaldet postDate
(alternativ syntaks:sort({ postDate: -1})
.