我想省略结果中的_id
字段
MongoClient.connect("mongodb://localhost:27017/",function(err,client){
var db = client.db("customerDetails");
db.collection("customerName").find({},{ _id : 0}).toArray(function(error,result){
console.log(result);
client.close();
});
});
从w3学校抬头看
但不知怎的,它不起作用。我仍然在结果对象中获得_id
字段。
我错过了什么?
答案 0 :(得分:1)
在mongodb驱动程序的3.0版本中,find()
的第二个参数是选项对象,而不是投影文档。请参阅文档here。要发送投影文档,请设置选项文档的projection
属性。 E.g。
db.collection("customerName").find({}, { projection: { _id: 0 } })
或者,使用project method:
db.collection("customerName").find({}).project({ _id: 0 })
在mongodb驱动程序的2.2版本中,find
的第二个参数确实是投影文档。这在最新版本(3.0)中已更改。所以一些博客文章可能不是最新的。请参阅3.0更改日志here的相关部分。
答案 1 :(得分:0)
这应该有效。使用布尔值" false"。
process.emit('warning', new Warning('foo bar baz'));
答案 2 :(得分:0)
在mongodb的版本3.4.9
中,您可以通过以下方式实现此目的:
db.getCollection('data').find({}, { _id: 0 })