MongoDB集合插入添加_id字段

简单的代码连接到一个数据库,创build一个集合,并写一个文档。 但是,为什么通过调用collection.insert jsonobj更改jsonobj

 var mongo = require('mongodb').MongoClient; mongo.connect('mongodb://localhost:27017/testDB', function(err, connection) { if (!err) { connection.createCollection('test', function (err, collection) { if (!err) { var jsonobj = {foo: 'bar', abc: 'xyz'}; collection.insert(jsonobj, function (err, result) { if (!err) { //is not equal to the previous value of jsonobj console.log(jsonobj); } }); } }); } }); 

我得到的输出是{ foo: 'bar', abc: 'xyz', _id: 5769a38cd01e25512a3dbdd8 } ,它不等于jsonobj的原始值。 我明白,MongoDB文件都有一个_id字段,但为什么它被添加到我的对象?

来自: https : //docs.mongodb.com/manual/reference/glossary/

_ID

每个MongoDB文档都需要一个字段。 _id字段必须具有唯一的值。 您可以将_id字段视为文档的主键。 如果你创build一个没有_id字段的新文档,MongoDB将自动创build该字段并分配一个唯一的BSON ObjectId。

你的对象是文档,所以Mongo添加它。