Агрегационный запрос Spring Mongo ⇐ JAVA
-
Гость
Агрегационный запрос Spring Mongo
Я новичок в использовании Mongo DB в Spring. У меня есть запрос к базе данных Mongo
[ { "$группа": { "_идентификатор": { "электронная почта": "$email", "faxType": "$faxType" }, "faxCount": { "$sum": 1 } }}, { "$группа": { "_id": "$_id.email", "типы факсов": { "$push": { "faxType": "$_id.faxType", "count": "$faxCount" }, }, "count": { "$sum": "$faxCount" } }}, { "$sort": { "count": -1 } }, { "$limit": 2 }, { "$проект": { "faxTypes": { "$slice": [ "$faxTypes", 2 ] }, "счет": 1 }} ] Мне нужен эквивалент описанного выше, который я могу выполнить в SpringBoot, используя шаблон Mongo. Я попытался выполнить преобразование выше с помощью MongoCompass, но полученный запрос выдает ошибку времени компиляции.
Я понимаю, что мне нужно создать несколько групп. Поэтому я начал с этого
GroupOperation groupOperationOne = Aggregation.group(propertyName, "faxType").count().as("faxCount"); GroupOperation groupOperationTwo = Aggregation.group(groupOperationOne.getFields().getField("электронная почта")).push("faxTypes"); Я не могу понять, как ссылаться на _id.email из первой групповой операции.
Каждый документ в коллекции имеет адрес электронной почты и тип факса (входящий или исходящий). Мне нужно сгруппировать все записи по электронной почте, и для каждого электронного письма мне нужно количество INBOUND faxType и OUTBOUND
Я новичок в использовании Mongo DB в Spring. У меня есть запрос к базе данных Mongo
[ { "$группа": { "_идентификатор": { "электронная почта": "$email", "faxType": "$faxType" }, "faxCount": { "$sum": 1 } }}, { "$группа": { "_id": "$_id.email", "типы факсов": { "$push": { "faxType": "$_id.faxType", "count": "$faxCount" }, }, "count": { "$sum": "$faxCount" } }}, { "$sort": { "count": -1 } }, { "$limit": 2 }, { "$проект": { "faxTypes": { "$slice": [ "$faxTypes", 2 ] }, "счет": 1 }} ] Мне нужен эквивалент описанного выше, который я могу выполнить в SpringBoot, используя шаблон Mongo. Я попытался выполнить преобразование выше с помощью MongoCompass, но полученный запрос выдает ошибку времени компиляции.
Я понимаю, что мне нужно создать несколько групп. Поэтому я начал с этого
GroupOperation groupOperationOne = Aggregation.group(propertyName, "faxType").count().as("faxCount"); GroupOperation groupOperationTwo = Aggregation.group(groupOperationOne.getFields().getField("электронная почта")).push("faxTypes"); Я не могу понять, как ссылаться на _id.email из первой групповой операции.
Каждый документ в коллекции имеет адрес электронной почты и тип факса (входящий или исходящий). Мне нужно сгруппировать все записи по электронной почте, и для каждого электронного письма мне нужно количество INBOUND faxType и OUTBOUND
Мобильная версия