Создание документа с {strict: false} в mongoose - PullRequest
1 голос
/ 21 апреля 2020

Задача - сохранить некоторые документы в MongoDB. Документы имеют один и тот же верхний уровень, но оттуда они могут быть разными. Структура полезной нагрузки:

{
  "types": "a", //the type can be "a", "b" or "c"
  "details" : {
       ... // the details object structure is different for each type
    }
}

, и это модель, которую я написал:

const Details = { strict: false };

const MyOrder = new Schema({
  types: {
    type: String,
    enum: ['a', 'b', 'c'],
  },
  details: Details,
});

module.exports = Order = mongoose.model('myOrder', MyOrder);

Я устанавливаю детали с помощью { strict: false }, потому что я хочу получать данные независимо от того, что структура это имеет. Возможно, что-то там не так.

Когда POST-запрос выполнен, документ, сохраненный в базе данных, выглядит следующим образом:

_id: ObjectId("...")
types: "a"
__v : 0

Он сохранил types, но ничего о деталях .

Можно ли сохранить детали тоже?

1 Ответ

0 голосов
/ 21 апреля 2020

Мне удалось решить проблему, не создав еще один объект Details, как описано выше, но добавив { strict: false } внутри схемы. Как это:

const MyOrder = new Schema(
  {
    types: {
      type: String,
      enum: ['a', 'b', 'c'],
    },
  },
  { strict: false }
);

module.exports = Order = mongoose.model('myOrder', MyOrder);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...