toArray
hàm tồn tại trên Cursor
lớp từ trình điều khiển NodeJS MongoDB bản địa (tham khảo). find
trong MongooseJS trả về một Query
đối tượng (tham chiếu). Có một số cách bạn có thể thực hiện tìm kiếm và trả về kết quả.
Vì không có lệnh gọi đồng bộ nào trong trình điều khiển NodeJS cho MongoDB, bạn sẽ cần sử dụng mẫu không đồng bộ trong mọi trường hợp. Ví dụ cho MongoDB, thường có trong JavaScript sử dụng Bảng điều khiển MongoDB ngụ ý rằng trình điều khiển gốc cũng hỗ trợ chức năng tương tự, nhưng nó không hỗ trợ.
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);
});
};
Sau đó, gọi nó là:
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('/');
});
Bạn cũng có thể sắp xếp trên một trường (chẳng hạn như ngày đăng trên blog):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
Đoạn mã trên sẽ sắp xếp theo thứ tự giảm dần dựa trên một trường có tên là postDate
(cú pháp thay thế:sort({ postDate: -1})
.