Мы используем экземпляр MongoDB для некоторых наших данных о ценах, и я хотел бы найти последнее обновление цены для каждого продукта, который у меня есть в базе данных.MongoDB - это предотвращение агрегации по простому запросу
Исходя из фона SQL, моя первоначальная мысль заключалась в том, что для создания запроса с подзапросом, где подзапрос представляет собой группу по запросу. В подзапросах обновления цены сгруппированы по продукту, а затем можно найти самое последнее обновление для каждого обновления цены.
Я говорил с коллегой об этом подходе, и он утверждал, что в официальном учебном материале от MongoDB говорится, что следует предпочесть простые запросы по агрегированным. то есть он будет запускать запрос для каждого продукта, а затем найти последнее обновление цены, заказывая их по дате обновления. Таким образом, количество запросов будет линейным по сравнению с количеством продуктов.
Я согласен с тем, что проще написать такой запрос, а не агрегированный, но я бы подумал, что производительность была бы более быстрой, чтобы пройти коллекцию один раз и найти запросы, то есть количество запросы будут постоянными по сравнению с количеством продуктов.
Он также утверждает, что mongodb также сможет лучше оптимизировать работу при выполнении простых запросов при работе в кластере.
Кто-нибудь знает, если это так?
Я попытался найти в Интернете, и я не могу найти такое утверждение, что нужно предпочитать простые запросы по агрегированным.
Еще один мой коллега также думал, что это может быть так, так как MongoDB - это новая технология, то, возможно, запросы агрегации не были оптимизированы для кластерных экземпляров MongoDB.
Любой, кто может пролить свет на эти вопросы?
Заранее спасибо