infseeker
@infseeker
I am a beginner web developer (JS, Python)

Как хранить данные динамической модели в MongoDB + Mongoose?

Я начинающий разработчик, в данный момент делаю тестовые задания, в одном из них требуется следующее (использование MongoDB и Mongoose - обязательно):


На сайте есть два раздела:

Раздел заявок:
- Просмотр заявок в табличном виде
- Создание и редактирование заявки через специальную форму
- Удаление заявки
- В форме заявок по умолчанию доступны несколько полей: название, описание, дата

Раздел настроек:
- Настройка формы заявок
- Добавление, редактирование, удаление полей формы
- Типы полей: текстовое поле, многострочное поле, флажок (checkbox), выпадающий список (select), дата и время
- Полю можно задать имя, описание, элементы списка (для select)
- Поля можно пометить как обязательные к заполнению
- У полей можно задать значение по умолчанию


Насколько я понял задание, то в базе должно быть две таблицы (коллекции) - Заявка и Поле формы. У Заявки должны быть три обязательных поля, а остальные добавляются / удаляются в процессе (в разделе настроек формы). Но я не понимаю, каким образом должна быть устроена модель данных заявки, чтобы динамически менять структуру. Тут ещё проблема в том, если поля формы изменились, то нужно ли оставлять в базе те данные заявки, которые уже были сохранены в полях, которых в данный момент уже нет в базе, либо нет (по-хорошему, конечно, лучше сохранять все данные, но как их потом выводить и связывать с новыми полями, если, например, имена полей совпадают)?

Есть предположение, что можно использовать что-то похожее, но это не точно:
const RequestSchema = new Schema({
    Name : {type: String},
    Description : {type: String},
    Date: {type: Date}
    fields : [Schema.Types.Mixed]
}, {strict: false});


Спасибо.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы