Всем привет, реализовываю фильтрацию с помощью монги. На данный момент есть

несколько этапов агрегации (match, sort, project), при этом в составлении запроса для match используется 2 отдельных запроса к базе для получения промежуточных данных.
После агрегации происходит populate
Нужно добавить фильтрацию по полям, которые получаются через populate, для этого я решил populate заменить на несколько lookup'ов (4) помещенных в начало агрегации. Но в результате время выполнения запроса неприятно выросло.
Понимаю, что причина этого в том, что все lookup'ы выполняются над всей коллекцией последовательно, но не знаю, на что можно их заменить, чтобы уменьшить время обработки запроса.
Может есть уже проверенные временем подходы оптимальные или кто-то сталкивался с подобного рода проблемами?

3 ответов

7 просмотров

пересматривай структуру данных, надо избавляться от 4х лукапов у меня похожая проблема полгода назад была. пробовал и через facet, и на уровне кода асинком кидаться, только изменяя структуру данных удалось ускориться

Daniil- Автор вопроса
Alexandrr
пересматривай структуру данных, надо избавляться о...

Структуру данных поменять навряд ли выйдет, так как время на это никто выделять не будет)

Daniil
Структуру данных поменять навряд ли выйдет, так ка...

ну если не будет выделять, пусть тогда запросы по 5 секунд работают у них

Похожие вопросы

Обсуждают сегодня

Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
это группа токсиков или тех кто помогает?
Ибрагим
9
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
всем привет. подскажите. сделал политику, он верхнеуровневая. раздал права только на TEST2 (полные). вопрос - можно ли сделать так, чтобы был доступен только TEST2, а остально...
Андрей Сергеев
5
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
Добрый день, подскажите, пожалуйста, кто может помочь? Заказал Orange Pi AiPro, но не могу скачать на него официальное программное обеспечение, так как оно доступно только на ...
Ivan
2
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Вы когда из вики.... копировали, не обратили внимание на года(ы)? 😉 ==== если до 1917 года в Москве было около 15 000 легковых извозчиков, то к 1920 году их осталось 5 000, а ...
Igor Mitin
4
Слушайте, а при создании навигации на Tailor рили нельзя определять активный пункт навигации, как в Static Pages?
Pavel Lautsevich
11
Карта сайта