Solución:
los toArray
La función existe en el Cursor
class del controlador Native MongoDB NodeJS (referencia). los find
método en MongooseJS devuelve un Query
objeto (referencia). Hay varias formas de realizar búsquedas y obtener resultados.
Como no hay llamadas síncronas en el controlador NodeJS para MongoDB, deberá usar un patrón asíncrono en todos los casos. Los ejemplos de MongoDB, que a menudo se encuentran en JavaScript utilizando la consola de MongoDB, implican que el controlador nativo también admite una funcionalidad similar, lo que no es así.
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);
});
};
Entonces, para llamarlo:
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("https://foroayuda.es/");
});
También puede ordenar en un campo (como la fecha de una publicación de blog, por ejemplo):
Blog.find().where("author", username).
sort("-postDate").exec(/* your callback function */);
El código anterior se ordenaría en orden descendente según un campo llamado postDate
(sintaxis alternativa: sort({ postDate: -1})
.