De toArray
functie bestaat op de Cursor
class van het Native MongoDB NodeJS-stuurprogramma (referentie). De find
methode in MongooseJS retourneert een Query
voorwerp (referentie). Er zijn een paar manieren waarop u zoekopdrachten kunt uitvoeren en resultaten kunt retourneren.
Aangezien er geen synchrone aanroepen zijn in het NodeJS-stuurprogramma voor MongoDB, moet u in alle gevallen een asynchroon patroon gebruiken. Voorbeelden voor MongoDB, die vaak in JavaScript zijn met behulp van de MongoDB-console, impliceren dat de native driver ook vergelijkbare functionaliteit ondersteunt, wat niet het geval is.
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);
});
};
Om het dan te noemen:
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('/');
});
U kunt ook sorteren op een veld (zoals de datum van een blogpost bijvoorbeeld):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
De bovenstaande code sorteert in aflopende volgorde op basis van een veld met de naam postDate
(alternatieve syntaxis:sort({ postDate: -1})
.