Я пытаюсь настроить приложение CRUD, которое позволяет людям отмечать определенные услуги как завершенные или неполные. Со временем службы, скорее всего, изменятся, некоторые будут добавлены, некоторые удалены, поэтому я пытаюсь выяснить, могу ли я удалить службы из схемы, но сохраню возможность для старых документов обновлять эти службы.
Здесь является соответствующей частью моей схемы:
services: {
tom: {
name: {
type: String,
default: "Top of Mind",
required: true
},
status: {
type: Boolean,
default: false,
required: true
}
},
two: {
name: {
type: String,
default: "Service Two",
required: true
},
status: {
type: Boolean,
default: false,
required: true
}
},
three: {
name: {
type: String,
default: "Service Three",
required: true
},
status: {
type: Boolean,
default: false,
required: true
}
}
}
Я установил для свойства strict значение false в надежде обновить любую дополнительную службу, даже если ее не было в схеме. Например, в коллекции Mon go Atlas я вручную добавил службу к одному документу следующим образом:
test: {
name: "Test Service",
status: false
}
Это отлично работает при чтении данных и присутствует при выполнении обновления запроса до точка, где я пытаюсь изменить test.status. Возвращается весь документ, включая тестовый объект в службах, но doc.services.test
не определено, что означает, что я не могу редактировать статус «test».
edit: Вот объект службы, который возвращается, когда поиск документа:
{
tom: { name: 'Top of Mind', status: true },
two: { name: 'Service Two', status: true },
three: { name: 'Service Three', status: true },
test: { name: 'Service Test', status: false }
}
do c .services.test возвращает undefined
Есть ли здесь обходной путь или "тестовая" служба должна присутствовать в схеме в чтобы его обновить?