Получить количество макс (поле) MongoDb - PullRequest
0 голосов
/ 07 августа 2020

Требование

Необходимо опросить документы с максимальным приоритетом из коллекции mon go. Перед опросом необходимо отправить количество записей с максимальным приоритетом на другой api, чтобы получить разрешенное количество документов, которые я могу в конечном итоге отправить на api. Я опрашиваю api каждые 100 мс c с количеством документов с максимальным приоритетом

Пытался использовать конвейер агрегации (Spring Data Mon go - Java): -

Aggregation.newAggregation(Aggregation.match(Criteria.where(Field1).exists(true)
.and(Field2).exists(true)),Aggregation.group("priority").count().as("count"),Aggregation.sort(Sort.Direction.DESC, "priority"),Aggregation.limit(1));

Я также добавил индексы для Field1, Field2 и приоритета .

Нужен совет о том, есть ли лучший способ добиться этого, чтобы не возникало проблем с производительностью при большом количестве документы в коллекции, так как я довольно часто опрашиваю коллекцию. Что лучше: использовать Pilpeline агрегации или два запроса: один для получения наивысшего приоритета, а затем для подсчета?

...