Size: a a a

NestJS — русскоязычное сообщество

2020 April 14

M

MORNING in NestJS — русскоязычное сообщество
Подскажите как указать массив uuid для сваггера
Пробую так:
@ApiProperty({ format: 'uuid' })
deleted: string[];


генерируется просто массив строк в сваггере, если убрать массив, оставить как значение, то все в порядке
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Veaceslav Artiom
Ребят подскажите плиз по поводу TypeOrm, я чет не понимаю, как мне достать categoryId (из relations) ? Сделал leftJoinAndSelect, но прилетает весь объект, мне же нужен только id, Заранее огромное спасибо
делай через subQuery ничего другого я не вижу, но если бы ты знал как легко это все делается в обжекшене... и как его еще и затипизировать можно ты бы ужаснулся...
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Sviatoslav
делай через subQuery ничего другого я не вижу, но если бы ты знал как легко это все делается в обжекшене... и как его еще и затипизировать можно ты бы ужаснулся...
обжекшене это еще что такое ?
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Veaceslav Artiom
обжекшене это еще что такое ?
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Veaceslav Artiom
обжекшене это еще что такое ?
Мини ормка
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
возможно в typeorm можно указать что то типа select(['joinedTable.id']) попробуй
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
@KaufmanEndy ping. Ты вроде как-то делал такое.
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
я тут
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Отлично, привет. Смотри у меня есть отножение поста к категорий. И вот я делаю у постов
.leftJoinAndSelect('post.category', 'category')
что бы достать категорию, вот только мне нафиг не нужен весь объект, а только его id или значение из categoryId. Понимаешь ?
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Sviatoslav
делай через subQuery ничего другого я не вижу, но если бы ты знал как легко это все делается в обжекшене... и как его еще и затипизировать можно ты бы ужаснулся...
Уговорил, попробую его в следующем пет проекте, когда он будет
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Veaceslav Artiom
Отлично, привет. Смотри у меня есть отножение поста к категорий. И вот я делаю у постов
.leftJoinAndSelect('post.category', 'category')
что бы достать категорию, вот только мне нафиг не нужен весь объект, а только его id или значение из categoryId. Понимаешь ?
Вот это значение нужно достать
источник

LK

L K in NestJS — русскоязычное сообщество
Veaceslav Artiom
Отлично, привет. Смотри у меня есть отножение поста к категорий. И вот я делаю у постов
.leftJoinAndSelect('post.category', 'category')
что бы достать категорию, вот только мне нафиг не нужен весь объект, а только его id или значение из categoryId. Понимаешь ?
добавь у Post поле public categoryId: number
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Veaceslav Artiom
Вот это значение нужно достать
мой вариант с select('categoty.id') проверил? вот тебе пример с подзапросом
let query = connection
 .createQueryBuilder(Chat, "chat")
 .leftJoin('chat.listingMembers', 'listingMembers')
 .where('listingMembers.id = :id', {id: currentUser.id})
 .leftJoinAndSelect(subQuery => {
   return subQuery
     .from(Message, "message")
     .innerJoin('message.chat', 'chat', 'chat.id = :chatId', {chatId: <???>})
     .innerJoin('message.holders', 'holders', 'holders.id = :userId', {userId: currentUser.id})
     .orderBy({"message.createdAt": "DESC"});
 }, "messages")
 .orderBy({
   "messages.createdAt": {order: "DESC", nulls: "NULLS LAST"},
   "chat.id": "DESC",
 });
источник

LK

L K in NestJS — русскоязычное сообщество
Veaceslav Artiom
Вот это значение нужно достать
@Column({ type: 'integer' })
public categoryId: number;
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Sviatoslav
мой вариант с select('categoty.id') проверил? вот тебе пример с подзапросом
let query = connection
 .createQueryBuilder(Chat, "chat")
 .leftJoin('chat.listingMembers', 'listingMembers')
 .where('listingMembers.id = :id', {id: currentUser.id})
 .leftJoinAndSelect(subQuery => {
   return subQuery
     .from(Message, "message")
     .innerJoin('message.chat', 'chat', 'chat.id = :chatId', {chatId: <???>})
     .innerJoin('message.holders', 'holders', 'holders.id = :userId', {userId: currentUser.id})
     .orderBy({"message.createdAt": "DESC"});
 }, "messages")
 .orderBy({
   "messages.createdAt": {order: "DESC", nulls: "NULLS LAST"},
   "chat.id": "DESC",
 });
И он тайпчекает даже такие места, как chat.listingMembers строкой?
источник

VA

Veaceslav Artiom in NestJS — русскоязычное сообщество
Sviatoslav
мой вариант с select('categoty.id') проверил? вот тебе пример с подзапросом
let query = connection
 .createQueryBuilder(Chat, "chat")
 .leftJoin('chat.listingMembers', 'listingMembers')
 .where('listingMembers.id = :id', {id: currentUser.id})
 .leftJoinAndSelect(subQuery => {
   return subQuery
     .from(Message, "message")
     .innerJoin('message.chat', 'chat', 'chat.id = :chatId', {chatId: <???>})
     .innerJoin('message.holders', 'holders', 'holders.id = :userId', {userId: currentUser.id})
     .orderBy({"message.createdAt": "DESC"});
 }, "messages")
 .orderBy({
   "messages.createdAt": {order: "DESC", nulls: "NULLS LAST"},
   "chat.id": "DESC",
 });
Вот от этого я и хочу уйти. Что бы одним запросом. А так у тебя как и у меня сейчас получается что будет запрос на пост и пот еще запрос для того что бы тупо достать этот ID
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Veaceslav Artiom
Отлично, привет. Смотри у меня есть отножение поста к категорий. И вот я делаю у постов
.leftJoinAndSelect('post.category', 'category')
что бы достать категорию, вот только мне нафиг не нужен весь объект, а только его id или значение из categoryId. Понимаешь ?
.leftJoin('post.category', 'category').addSelect('category.id') такое может проконает
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Grigorii K. Shartsev
И он тайпчекает даже такие места, как chat.listingMembers строкой?
нет, так не умеет, но есть withGraphFetch который отправляет отдельный запрос вот его затипизировать не проблема там точек не будет
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Sviatoslav
нет, так не умеет, но есть withGraphFetch который отправляет отдельный запрос вот его затипизировать не проблема там точек не будет
И граф фетч норм интегрируется с подзапросами?
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Grigorii K. Shartsev
И граф фетч норм интегрируется с подзапросами?
да, посиотри у меня в либе там в самом самом конце пример. На выходе получишь вложенный объект тоже самое что и с джойном
источник