连接数据库,创建集合和编写文档的简单代码。但是,为什么通过调用jsonobj
来更改collection.insert
?
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
字段,但为什么它被添加到我的对象中?
答案 0 :(得分:3)
来自:https://docs.mongodb.com/manual/reference/glossary/
_id
每个MongoDB文档中都需要一个字段。 _id字段必须具有唯一值。您可以将_id字段视为文档 首要的关键。如果您创建没有_id字段的新文档, MongoDB自动创建字段并分配唯一的BSON 的ObjectId。
您的对象是文档,因此Mongo添加了它。