Вы испытываете это, потому что ваша схема Mongoose не знает о свойствах, которые она должна хранить в документе.
Вы использовали any
в качестве ключа в своем определении схемы, что, как я полагаю, вы сделали, потому чтоВы следовали разделу SchemaTypes в документации.
any
не означает, что какое-либо свойство является приемлемым.Это означает, что Mongoose ищет значение с ключом "any" , буквально.Если тело вашего запроса не содержит такого ключа (и не содержит его, поскольку оно содержит только name и age ), оно не будет поднято при сохранении нового объекта.
То, что вы испытываете, - это ожидаемое поведение Mongoose.
Определение схемы
MongoDB обладает гибкими структурами документов.Однако, когда вы определяете новую схему, вы также должны определить все возможные свойства и их типы (вы также можете использовать {}
в качестве типа для поддержки любого типа - хотя это не рекомендуется).
Вы можете определитьваша схема выглядит следующим образом:
{
name: String,
age: Number
}
Это означает, что когда вы вызываете .save()
для вашего нового объекта, Mongoose выберет только указанные свойства в схеме (а также _id
и __v
,которые существуют в любой схеме по умолчанию).
Подробнее о схемах Mongoose здесь .