投影无法在mongo中使用db.collection.find

sne*_*ari 16 amazon mongodb node.js cloud9

我一天前就开始使用mongodb并遇到了问题.我在net和stackoverflow上搜索了如何在最终答案中隐藏_id值并按照提供的答案我试图让我的代码运行但仍然是_id部分显示.

PS:我使用的是cloud9作为ide.

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();
        });
});
Run Code Online (Sandbox Code Playgroud)

Jo *_*Gro 42

你可以像这样分开投影:

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

我有同样的问题,无法投射工作,上述方法对我有用

  • 这是一个巨大的突破性变化; 谢谢你指出来.看到这个答案后,我在github回购周围戳了戳.在那里提到了"v2与v3"的例子.(v3的许多重大变化).https://github.com/mongodb/node-mongodb-native/blob/master/CHANGES_3.0.0.md#find (9认同)