Size: a a a

2020 May 27

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
Знаешь короче че щас нарыл. Ты популэйт не можешь заюзать без какой-то коллекции собранной уже. Ну короче можешь сделать так:

collection.populate(collection.aggregate(…), options);

А так как тебе нужно только по ожному какому-то полю искать, то сделай лукап только на него
надо пробовать
источник

ВВ

Вячеслав Волков... in MongoDB Russian
Вячеслав Волков
а есть инфа у кого-нибудь как сделать populate в aggregate? вот есть у меня поле position: _id, как мне его популизировать? С помощью $lookup возвращается массив. Единственный способ это лукапить и брать первый элемент из массива? Или есть какие-то нормальные способы?
сделал лукап в отдельное поле и по нему уже плясал дальше, ну юзал $arrayElementAt
источник

ВВ

Вячеслав Волков... in MongoDB Russian
а кто-нибудь шарит как $count вынести в отдельное поле, а остальные результаты в другое?
источник

ВВ

Вячеслав Волков... in MongoDB Russian
возможно через $facet как-то можно
источник

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
Знаешь короче че щас нарыл. Ты популэйт не можешь заюзать без какой-то коллекции собранной уже. Ну короче можешь сделать так:

collection.populate(collection.aggregate(…), options);

А так как тебе нужно только по ожному какому-то полю искать, то сделай лукап только на него
короче до сегодняшнего дня я добавлял какое-нибудь property nested object в его парент при создании... и уже по нему в дальнейшем работал... но если обновят child object то видимо надо будет делать updateMany для всех его родителей которые используют его...
источник

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
а кто-нибудь шарит как $count вынести в отдельное поле, а остальные результаты в другое?
через $project?
источник

DC

Daniyar Changylov in MongoDB Russian
Daniyar Changylov
короче до сегодняшнего дня я добавлял какое-нибудь property nested object в его парент при создании... и уже по нему в дальнейшем работал... но если обновят child object то видимо надо будет делать updateMany для всех его родителей которые используют его...
видимо это пока что лучшее решение будет...
источник

ВВ

Вячеслав Волков... in MongoDB Russian
Daniyar Changylov
короче до сегодняшнего дня я добавлял какое-нибудь property nested object в его парент при создании... и уже по нему в дальнейшем работал... но если обновят child object то видимо надо будет делать updateMany для всех его родителей которые используют его...
не совсем понял. Типа ты не делал отдельные коллекции, а хранил все объектами для каждого отдельно экземпляра?
источник

AV

Artem Verbat in MongoDB Russian
Вячеслав Волков
кстати я возможно не лучший совет тебе дал, потому что мб не правильно понял, поэтому можешь попыаться сформулировать вопрос лучше. но мб и правильно)
Вообще вроде помогло мне. Спасибо
источник

ВВ

Вячеслав Волков... in MongoDB Russian
👍
источник

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
не совсем понял. Типа ты не делал отдельные коллекции, а хранил все объектами для каждого отдельно экземпляра?
нет.. отдельные коллекции.. просто если используются вместе, то даю какое-то ключевое значение паренту
источник

DC

Daniyar Changylov in MongoDB Russian
Daniyar Changylov
нет.. отдельные коллекции.. просто если используются вместе, то даю какое-то ключевое значение паренту
при создании
источник

ВВ

Вячеслав Волков... in MongoDB Russian
ну тогда да
источник

ВВ

Вячеслав Волков... in MongoDB Russian
но это гемор)
источник

ВВ

Вячеслав Волков... in MongoDB Russian
Daniyar Changylov
через $project?
ща попробую
источник

ВВ

Вячеслав Волков... in MongoDB Russian
слушай, так $project он же по-моему не дает новых полей создавать, а просто делает выборку из существующих? или я че-то не так понял
источник

ВВ

Вячеслав Волков... in MongoDB Russian
а не, походу я наглый лжец
источник

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
но это гемор)
ну да...а что делать, прочитал вот это и немного расстроился https://stackoverflow.com/questions/19937524/mongoose-how-to-query-for-a-referenced-object-property
источник

DC

Daniyar Changylov in MongoDB Russian
Вячеслав Волков
слушай, так $project он же по-моему не дает новых полей создавать, а просто делает выборку из существующих? или я че-то не так понял
$addFields
источник

DC

Daniyar Changylov in MongoDB Russian
еще есть
источник