Size: a a a

Sequelize - community (eng/ru)

2021 March 11

AI

Artyom Ivanov in Sequelize - community (eng/ru)
Андрей
Привет, подскажите как лучше реализовать такой кейс:
Делаю запрос findAll(). Ответ id: 1, id_person, etc
Как лучше всего сделать еще запрос на id_person и получить имя.
А после вернуть
id: 1,
id_person,
name_person
etc

Использую postgres

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

findAll({
 include: [
   attributes: ['name'],
   model: ...
 ]
})
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Андрей
Привет, подскажите как лучше реализовать такой кейс:
Делаю запрос findAll(). Ответ id: 1, id_person, etc
Как лучше всего сделать еще запрос на id_person и получить имя.
А после вернуть
id: 1,
id_person,
name_person
etc

Использую postgres

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

А

Андрей in Sequelize - community (eng/ru)
Artyom Ivanov
ты ведь можешь в запросе использовать include к той модели, что тебе нужна и получить имя.

findAll({
 include: [
   attributes: ['name'],
   model: ...
 ]
})
cпасибо
источник

А

Андрей in Sequelize - community (eng/ru)
Yaroslav Zhymkov
вам нужно обьявить асоциации и использовать их в include. в итоге это позволит получить данные вместе с связующими. пример есть в закрепленных и в доке
спасибо, вот начал смотреть уже
источник

А

Андрей in Sequelize - community (eng/ru)
но пока безрезультатно.
Если изначально у меня не было асоциаций, проблемно будет настроить?
пока ошибка Person is not associated to Advert!
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
да, нужно обьявить асоциацию. это можно сделать и сейчас, не должно повлиять на код написанный до
источник

А

Андрей in Sequelize - community (eng/ru)
Yaroslav Zhymkov
да, нужно обьявить асоциацию. это можно сделать и сейчас, не должно повлиять на код написанный до
вот так пока делаю, могли бы взглянуть и подсказать, верно ли
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
да, около того, перепроверьте синтаксис и отдебажте
источник

А

Андрей in Sequelize - community (eng/ru)
Query: {
   listAdverts: async (parent: any, args: any, ctx: any) => {
     const adverts = await db.Advert.findAll({
       include: {
         model: db.Person, as: 'person'
       }
     });
     console.log(adverts);
     return adverts;
   },


вот так вызываю но ошибка «Person is not associated to Advert!»
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
у вас сейчас asset ссылаеться на person. А надо наоборот скорее всего. попробуйте другую связь: hasOne/hasMany. и пепроверьте все
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
источник

А

Андрей in Sequelize - community (eng/ru)
Yaroslav Zhymkov
у вас сейчас asset ссылаеться на person. А надо наоборот скорее всего. попробуйте другую связь: hasOne/hasMany. и пепроверьте все
Благодарю вас за помощь, получилось!) 👍😉
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Андрей
Благодарю вас за помощь, получилось!) 👍😉
успехов
источник

А

Андрей in Sequelize - community (eng/ru)
Yaroslav Zhymkov
успехов
взаимно
источник
2021 March 12

A

A in Sequelize - community (eng/ru)
Guys i need to order by a key that is inside the data that i got with join
источник

A

A in Sequelize - community (eng/ru)
How can i orderby that key in sewuelize
источник

A

A in Sequelize - community (eng/ru)
Example- {a:"sbsb",anotherObject:{s:"hdhdbd"}}
This is the data i need to sort on s key that is inside anotherObject which i got with join
источник

A

A in Sequelize - community (eng/ru)
Is it possible?
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
A
Example- {a:"sbsb",anotherObject:{s:"hdhdbd"}}
This is the data i need to sort on s key that is inside anotherObject which i got with join
yes, u can put logic inside include which make join.
https://github.com/sequelize/sequelize/issues/4553
источник
2021 March 16

AZ

Alexandr Zharkov in Sequelize - community (eng/ru)
Привет всем, есть таблица к которой делю 2 инклуда,
const unread = await SubscriberNotification.findAll({
     include: [
       {
         model: Notification,
         as: 'notification',
         required: true,
         where: {
           status: Notification.NOTIFICATION_STATUS_SENDED,
         },
       },
       {
         model: SubscriberNotificationRead,
         as: 'read',
         required: true,
       },
     ],
     where: {
       userName: sub,
     },
   });
Запутался немного, как мне заинклудить чтобы получить записи которых НЕТ в SubscriberNotificationRead

То есть получаю пользователя (SubscriberNotification) в него загружаю все уведомления (Notification) которые отправлены (NOTIFICATION_STATUS_SENDED), НО которые еще не прочитаны (нет в SubscriberNotificationRead)
источник