Saltar al contenido

Model.find (). ToArray () afirmando no tener el método .toArray ()

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}).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *