toArray
функцията съществува в Cursor
клас от Native MongoDB NodeJS драйвер (справка). find
метод в MongooseJS връща Query
обект (референтен). Има няколко начина, по които можете да търсите и да връщате резултати.
Тъй като в драйвера на NodeJS за MongoDB няма синхронни извиквания, ще трябва да използвате асинхронен модел във всички случаи. Примерите за MongoDB, които често са в JavaScript, използвайки MongoDB Console, предполагат, че родният драйвер също поддържа подобна функционалност, което не го прави.
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);
});
};
След това, за да го извика:
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('/');
});
Можете също да направите сортиране по поле (като дата на публикация в блог например):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Горният код ще се сортира в низходящ ред въз основа на поле, наречено postDate
(алтернативен синтаксис:sort({ postDate: -1})
.