Я хочу получить «все документы», имеющие наибольшее значение для определенного поля, а не группу по другому полю.получить все документы, имеющие максимальное значение, используя агрегацию в mongodb
Рассмотрим ниже данных:
_id:1, country:india, quantity:12, name:xyz
_id:2, country:USA, quantity:5, name:abc
_id:3, country:USA, quantity:6, name:xyz
_id:4, country:india, quantity:8, name:def
_id:5, country:USA, quantity:10, name:jkl
_id:6, country:india, quantity:12, name:jkl
Ответ должен быть
country:india max-quantity:12
name xyz
name jkl
country:USA max-quantity:10
name jkl
Я попробовал несколько запросов, но я могу получить только максимальное значение без имени или я могу пойти группу, но это показывает все значения.
db.coll.aggregate({$group:{_id:"$country","maxQuantity":{$max:"$quantity"}}})
, например, выше, будет давать максимальное количество на каждой стране, но как совместить с другой областью, например, что он показывает все документы максимального количества.
добавить комментарий добавочное поле в $ group сразу после поля _id –
@AlokDeshwal вы можете дать мне точный запрос –
@AlokDeshwal Это не сработает, так как цель состоит в том, чтобы найти «максимальное» значение для каждой страны, а затем вернуть только другие значения из документов «соответствие», которые значение «max». –