Вставка коллекции MongoDB добавляет поле _id

Простой код для подключения к БД, создания коллекции и написания документа. Однако почему 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 поле, но почему это добавлено к моему объекту?

1 ответ

Решение

От: https://docs.mongodb.com/manual/reference/glossary/

_Я бы

Поле, обязательное для заполнения в каждом документе MongoDB. Поле _id должно иметь уникальное значение. Вы можете думать о поле _id как о первичном ключе документа. Если вы создаете новый документ без поля _id, MongoDB автоматически создает поле и назначает уникальный BSON ObjectId.

Ваш объект - это документ, и Монго добавляет его.

Другие вопросы по тегам