как получить определенные c данные внутри продолжения Включить нетерпеливую загрузку - PullRequest
0 голосов
/ 16 июня 2020

В сиквелизе у меня есть модель коллекции, связанная с моделью продукта. у каждого продукта есть изображение. но я использую Polymorphi c Associations для модели изображения. потому что товар, категория, коллекция тоже имеют изображение. поэтому у меня есть imageableId и imageableType в модели изображения. например, для хранения изображения в db, принадлежащего Product:

Image Model : {
  id
  url
  imageableId : 3        //productId
  imageableType: 'product'
}

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

const getOne = async (collectionId) => {
  const collection = await Collection.findByPk(collectionId, {

    include: {
      model: Product,
      as: 'products',
      attributes: ['id', 'name_en', 'price', 'old_price'],
      through: {
        attributes: [],
      },
      include: {
        model: Image,
        where: { imageableId: productId, imageableType: 'product'}
      }
    },
  })

}

ответ, который я хочу получить:

{
collectionId,
collectionName,
...
products: [{
    id
    name_en
    price
    old_price
    imageUrl
    }, ...]
}
...