Das toArray
Funktion existiert auf dem Cursor
-Klasse aus dem nativen MongoDB-NodeJS-Treiber (Referenz). Der find
-Methode in MongooseJS gibt eine Query
zurück Objekt (Referenz). Es gibt einige Möglichkeiten, wie Sie Suchen durchführen und Ergebnisse zurückgeben können.
Da es im NodeJS-Treiber für MongoDB keine synchronen Aufrufe gibt, müssen Sie in allen Fällen ein asynchrones Muster verwenden. Beispiele für MongoDB, die häufig in JavaScript unter Verwendung der MongoDB-Konsole vorliegen, implizieren, dass der native Treiber auch ähnliche Funktionen unterstützt, was er nicht tut.
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);
});
};
Dann, um es zu nennen:
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('/');
});
Sie können auch nach einem Feld sortieren (z. B. nach dem Datum eines Blogbeitrags):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Der obige Code würde basierend auf einem Feld namens postDate
in absteigender Reihenfolge sortieren (alternative Syntax:sort({ postDate: -1})
.