web-dev-qa-db-fra.com

projection ne fonctionne pas avec db.collection.find dans mongo

J'ai commencé à utiliser mongodb il y a juste un jour et j'ai rencontré un problème. J'ai cherché sur net et stackoverflow pour savoir comment masquer la valeur _id dans la réponse finale et en suivant les réponses fournies, j'ai essayé de faire fonctionner mon code mais la partie _id s'affiche toujours.

P.S .: J'utilise cloud9 comme idée.

var mongo = require('mongodb').MongoClient;
mongo.connect('mongodb://localhost:27017/learnyoumongo', function(err, database) {
        if(err) throw err;
        const db = database.db('learnyoumongo');
        var parrots = db.collection('parrots');
        parrots.find({
            age: { $gt: +process.argv[2] }
        },{
            name: 1,
            age: 1,
            _id: 0
        }).toArray(function(err, docs){
            if(err) throw err;
            console.log(docs);
            database.close();
        });
});
15
snehal maheshwari

vous pouvez séparer la projection comme ceci:

    parrots.find({
        age: { $gt: +process.argv[2] }
    }).project({_id:0}).toArray(function(err, docs){
        if(err) throw err;
        console.log(docs);
        database.close();
    });

j'ai eu le même problème avec l'impossibilité de faire fonctionner la projection, et la méthode ci-dessus a fonctionné pour moi

37
Jo Gro