Mongo Find()函数不会排除_id

时间:2018-01-17 06:09:33

标签: mongodb

您好我似乎无法使排除_id工作,这是代码

const findLabels = (db, cb) => {
  // Get the documents collection
  const collection = db.collection(documentName);

  // Find some documents
  collection.find({}, { _id: 0 }).toArray((err, docs) => {
    // An error occurred we need to return that to the given 
    // callback function
    if (err) {
      return cb(err);
    }

    assert.equal(err, null);
    console.log("Found the following records");
    console.log(docs)

    return cb(null, docs);
  });
}

以下是控制台日志中的输出

Found the following records
[ { _id: 5a5ee78cc130e727a3b1fdb6, name: 'Downgradeklajds' },
  { _id: 5a5ee794c130e727a3b1fdb7, Pizel: '00:00:07' } ]

我哪里出错了?

3 个答案:

答案 0 :(得分:7)

我认为指定投影的正确方法是使用“fields”或“projection”属性,具体取决于驱动程序的版本。

collection.find({}, {projection:{ _id: 0 }})

阅读文档here

答案 1 :(得分:0)

如果您使用findOne

您可以尝试

    const posts : Collection= db.collection('posts')
    let document = await posts.findOne({
            path: path
        }, {
            fields: {
                _id: 0
        }
    })

例如,我查询路径(用作_id)

答案 2 :(得分:0)

对于较新的版本,只需执行以下操作:

collection.find({}, {_id: 0 })  

其中 find {} 是指所有(无限制),下一个参数是投影,因此 0 或 False 排除 _id({_id: False } 相同)