¿Cómo excluir un campo en particular de una colección en Mangosta?


Tengo una aplicación NodeJS con Mangosta ODM(Mangosta 3.3.1). Quiero recuperar todos los campos excepto 1 de mi colección.Por ejemplo: Tengo un Producto de colección Que tiene 6 campos, quiero seleccionar todos excepto un campo "Imagen". Usé el método" exclude", pero obtuve un error.. Este era mi código.

    var Query = models.Product.find();
    Query.exclude('title Image');

    if (req.params.id) {
        Query.where('_id', req.params.id);
    }


    Query.exec(function (err, product) {
        if (!err) {
            return res.send({ 'statusCode': 200, 'statusText': 'OK', 'data': product });
        } else {
            return res.send(500);
        }
    });

Pero esto devuelve error

Express
500 TypeError: Object #<Query> has no method 'exclude'.........

También intenté, var Query = models.Product.find().exclude('title','Image'); y var Query = models.Product.find({}).exclude('title','Image'); Pero obteniendo el mismo error. Cómo excluir uno / (dos) campos particulares de un colección en Mangosta.

Author: Cœur, 2013-01-28

3 answers

Uso query.select para la selección de campo en el actual (3.x) Construcciones de mangosta.

Prefije un nombre de campo que desea excluir con un -; así que en su caso:

Query.select('-Image');

A un lado rápido: en JavaScript, las variables que comienzan con una letra mayúscula deben reservarse para las funciones constructoras. Así que considera renombrar Query como query en tu código.

 83
Author: JohnnyHK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 15:00:49

No se donde lees sobre eso .excluir función, porque no puedo encontrarla en ninguna documentación.

Pero puede excluir campos usando el segundo parámetro del método find.

Aquí hay un ejemplo de la documentación oficial :

db.inventory.find( { type: 'food' }, { type:0 } )

Esta operación devuelve todos los documentos donde el valor del campo tipo es food, pero no incluye el campo tipo en la salida.

 19
Author: Philipp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 09:48:34
Model.findOne({ _id: Your Id}, { password: 0, name: 0 }, function(err, user){
  // put your code
});

Este código funcionó en mi proyecto. ¡Gracias!! Que tengas un buen día.

 13
Author: Danieldms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-03 14:14:42