Убрать _id у вложенного документа
Работаю с MongoDB через mongoose. Создавая большие документы приходится делать в них вложенные объекты. Заметил, что mongoose создает у каждого саб-документа поле _id. Покопавшись в документации, стало понятно, что сделано это для поиска по массиву вложенных документов:
Each subdocument has an _id by default. Mongoose document arrays have a special id method for searching a document array to find a document with a given _id.
const doc = parent.children.id(_id);
Выглядит это следующим образом:
Поле _id создается у любого вложенного объекта по умолчанию. Можно как-то отключить автоматическое создание этого поля за ненадобностью (поиск в данных полях попросту не нужен)?
Ответы (1 шт):
Достаточно просто указать в схеме опцию _id : false:
export const scheduleSchema = new Schema({
min_age: Number,
max_age: Number,
schedule: [{
weekday: String,
time: String
}]
}, {_id : false})
Во вложенных объектах схемы _id так же создаваться не будет
