Вставка коллекции 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.
Ваш объект - это документ, и Монго добавляет его.