Как работать с базой данных Dynami c с mon goose? - PullRequest
0 голосов
/ 06 января 2020

Мы разрабатываем веб-приложение, в котором в качестве базы данных мы используем mongodb. Наше приложение о полевых управленческих решениях.

Таким образом, в нашем приложении данные постоянно изменяются, например, администратор может захотеть добавить новое поле в схему «Сотрудник» или удалить его, то же самое происходит со многими другими схемами в приложении.

Предположим, что после запуска нашего приложения мы можем ввести новый сервис, в который мы хотим добавить его в нашу базу данных, но поля, требуемые здесь, отличаются от предыдущих сервисов, и в схеме транзакций мы могли бы захотеть удалить или добавить новое поле.

Следующий уровень - это построитель схем во внешнем интерфейсе, где мы создаем, редактируем и удаляем новые схемы на основе требований вместо изменения кода, это должен быть динамический c. Теперь, как я должен обрабатывать эти многочисленные изменения на рабочем сервере, не перезапуская и не удаляя базу данных. Также у построителя схемы будут реляционные данные.

Как обрабатывать реляционные данные с помощью динамических c схем и функций промежуточного программного обеспечения в пн goose?

Кроме того, я видел в документации MongoDB, что в производственном режиме мы должны отключить autoIndex. Итак, каков альтернативный способ.

Также в схеме иногда нам может потребоваться изменить SchemaOptions, например: unique, minLength, maxLength, requried, etc., на основе требований.

Я пробовал много способов реализовать это, но я могу не найти способ сделать это должным образом. dropIndex не работает, createIndex не работает.

Всякий раз, когда я делаю изменения в схеме, я должен либо удалить базу данных, либо перезапустить свой сервер.

Также после того, как у меня есть 100 документов сохраняются в коллекции с полем, уникальным для false, и если я изменю уникальное на истинное, как обращаться с предыдущими документами, которые были сохранены с уникальным ложным?

Кто-нибудь может дать мне лучший пример реализации? Может пн goose делать мою работу? Или я должен использовать JOI с драйвером MongoDB для Nodejs без пн goose?

Спасибо.

1 Ответ

0 голосов
/ 06 января 2020

Мне нравится этот вопрос, он в основном создает приложение для меня ???

В любом случае, шутки в сторону, если вы зададите здесь много вопросов, более одного, на который можно было бы ответить одним простым ответом, однако я дам вам место для начала.

Сначала я бы держался подальше от пн goose. Вам понадобятся динамические c схемы, а Mon goose - это схема.

Go с собственным драйвером MongoDB и Joi для проверки объектов.

Я бы порекомендовал начать с выяснения базового ключа документов (объектов): значения, которые всегда будут присутствовать, например, _id

Затем я бы построил конечные точки для создания / обновления проверки объектов с помощью Joi и отслеживания. версий, возможно, даже отслеживать, какую проверку каждый документ (объект) использовал, когда он был создан.

Затем сохраните методы проверки объекта в базе данных или на сервере, где вы их вызываете, и таким образом, когда объект Создан и обновлен, у вас есть доступ к динамической проверке объекта c.

К сожалению, вы многое спросили, и поэтому это всего лишь несколько идей из головы. Я надеюсь, что это помогает. Я также написал сообщение в блоге о пн goose:

https://medium.com/better-programming/mongoose-vs-the-mongodb-node-driver-7dc59f00a5dd?source=friends_link&sk=94055c33491efc5578169c8dba586f44

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...