Технически нет изменений между его объявлением или нет на верхнем уровне схемы.
Как указано в документации для mongoose :
Mongooseприсваивает каждой вашей схеме поле _id по умолчанию, если оно не передается в конструктор схемы.Назначенный тип - это ObjectId, совпадающий с поведением MongoDB по умолчанию.
Некоторые люди могут добавить его, чтобы сделать его явным: поле _id
существует, и оно является ObjectId
.
ПРИМЕЧАНИЕ о том, что в подсхеме _id
можно отключить с помощью опции _id
опция :
_id Mongoose присваивает каждой вашей схеме поле _id по умолчанию, если оно не передается в конструктор схемы.Назначенный тип - это ObjectId, совпадающий с поведением MongoDB по умолчанию.Если вы вообще не хотите, чтобы _id добавлялся в вашу схему, вы можете отключить его, используя этот параметр.
Этот параметр можно использовать только в поддокументах.Mongoose не может сохранить документ, не зная его идентификатора, поэтому вы получите сообщение об ошибке, если попытаетесь сохранить документ без _id.
// default behavior
var schema = new Schema({ name: String });
var Page = mongoose.model('Page', schema);
var p = new Page({ name: 'mongodb.org' });
console.log(p); // { _id: '50341373e894ad16347efe01', name: 'mongodb.org' }
// disabled _id
var childSchema = new Schema({ name: String }, { _id: false });
var parentSchema = new Schema({ children: [childSchema] });
var Model = mongoose.model('Model', parentSchema);
Model.create({ children: [{ name: 'Luke' }] }, function(error, doc) {
// doc.children[0]._id will be undefined
});