Мы разрабатываем веб-приложение, в котором в качестве базы данных мы используем mongodb. Наше приложение о полевых управленческих решениях.
Таким образом, в нашем приложении данные постоянно изменяются, например, администратор может захотеть добавить новое поле в схему «Сотрудник» или удалить его, то же самое происходит со многими другими схемами в приложении.
Предположим, что после запуска нашего приложения мы можем ввести новый сервис, в который мы хотим добавить его в нашу базу данных, но поля, требуемые здесь, отличаются от предыдущих сервисов, и в схеме транзакций мы могли бы захотеть удалить или добавить новое поле.
Следующий уровень - это построитель схем во внешнем интерфейсе, где мы создаем, редактируем и удаляем новые схемы на основе требований вместо изменения кода, это должен быть динамический c. Теперь, как я должен обрабатывать эти многочисленные изменения на рабочем сервере, не перезапуская и не удаляя базу данных. Также у построителя схемы будут реляционные данные.
Как обрабатывать реляционные данные с помощью динамических c схем и функций промежуточного программного обеспечения в пн goose?
Кроме того, я видел в документации MongoDB, что в производственном режиме мы должны отключить autoIndex
. Итак, каков альтернативный способ.
Также в схеме иногда нам может потребоваться изменить SchemaOptions, например: unique, minLength, maxLength, requried, etc.,
на основе требований.
Я пробовал много способов реализовать это, но я могу не найти способ сделать это должным образом. dropIndex
не работает, createIndex
не работает.
Всякий раз, когда я делаю изменения в схеме, я должен либо удалить базу данных, либо перезапустить свой сервер.
Также после того, как у меня есть 100 документов сохраняются в коллекции с полем, уникальным для false, и если я изменю уникальное на истинное, как обращаться с предыдущими документами, которые были сохранены с уникальным ложным?
Кто-нибудь может дать мне лучший пример реализации? Может пн goose делать мою работу? Или я должен использовать JOI с драйвером MongoDB для Nodejs без пн goose?
Спасибо.