连接到数据库,创建集合和编写文档的简单代码。但是,为什么通过调用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字段,但是为什么将其添加到我的对象中?

最佳答案

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


  _ID
  
  每个MongoDB文档中必填的字段。 _id字段必须具有唯一值。您可以将_id字段视为文档的
  首要的关键。如果您创建的新文档没有_id字段,
  MongoDB自动创建字段并分配唯一的BSON
  ObjectId。


您的对象是文档,因此Mongo添加了它。

关于node.js - MongoDB集合插入添加_id字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37954089/

10-09 20:15
查看更多