Мангуст установил ссылку на свободную схему

У меня есть модель со свободной схемой (strict: false). Я хотел бы знать, возможно ли при отправке массива pageIds в бэкэнд сохранить их как ObjectId с ref: Image динамически, чтобы я мог заполнить их позже?

Это пример данных, которые я отправляю на мой маршрут:

{
    "title": "My page",
    "img": {
      "pageIds": [ 
          "5aa70207d63f86279091c950", 
          "5aa70207d63f86279091c952", 
          "5aa70207d63f86279091c954" 
      ],
      "repeat": false,
      "type": "imageEl"
    }
}

Затем, когда я получаю данные обратно, потому что у меня свободная схема, мне нужно перебрать каждое поле и заполнить их. Можно ли заполнить их напрямую с помощью findOne()? Например:

const page = await db.page.findOne({ _id: myId }).populate('img.pageIds')

Вместо этого:

const page = await db.page.findOne({ _id: myId })
const pageObj = page.toJSON()
for (const field in pageObj) {
    if (
        typeof pageObj[field] === 'object' &&
        pageObj[field].type === 'imageEl'
    ) {
       // here I have to populate the 'img.pageIds' from model 'Image'
    }
}

0 ответов

Другие вопросы по тегам