Я отлаживаю медленную конечную точку API в веб-приложении, которое использует mongodb в качестве хранилища. Оказывается, запрос отправляет 8 разных запросов в MongoDB и объединяет данные для возврата. MongoDB живет на другом хосте, поэтому запрос включает 8 обращений.Есть ли эквивалент команды команды redis в MongoDB?
Эти 8 запросов не имеют никакой зависимости между собой, поэтому, если я могу отправить 8 запросов в пакете или параллельно, можно сохранить много времени.
Мне интересно, поддерживает ли Mongo что-то вроде конвейера Редиса или может отправить сценарий (например, сценарий lua в Redis) для извлечения данных, чтобы я мог получить все данные за один раз?
Если нет, есть ли способ отправить запросы параллельно? (Приложение основано на python/tornado/pymongo)
Выражения db.eval устарели ... – NeoWang
«Структура агрегации MongoDB смоделирована по концепции трубопроводов обработки данных. Документы вводятся в многоэтапный конвейер, который преобразует документы в агрегированный результат». [docs] (https://docs.mongodb.com/manual/aggregation/#aggregation-pipeline) –
@SteveRossiter В Redis конвейеры могут обрабатывать несколько команд в одном запросе. На MongoDB конвейеры предназначены только для получения данных. – warvariuc