У меня есть тысячи документов в MongoDB с некоторыми из образца, как показано ниже:Найти отдельные документы с максимальным значением поля в MongoDB
{"title":"Foo", "hash": "1234567890abcedf", "num_sold": 49,
"created": "2013-03-09 00:00:00"}
{"title":"Bar", "hash": "1234567890abcedf", "num_sold": 55,
"created": "2013-03-11 00:00:00"}
{"title":"Baz", "hash": "1234567890abcedf", "num_sold": 55,
"created": "2013-03-10 00:00:00"}
{"title":"Spam", "hash": "abcedef1234567890", "num_sold": 20,
"created": "2013-03-11 00:00:00"}
{"title":"Eggs", "hash": "abc1234567890def", "num_sold": 20,
"created": "2013-03-11 00:00:00"}
Можно выбрать все документы с отчетливым hash
, который имеет максимальный num_sold
и если имеется более одного документа с тем же num_sold
, выберите последний документ из поля created
.
Я использую PyMongo для клиента.
Я попытался это, но он выбирает только 'hash' поле, но требуют' _id' объекта, чтобы правильно выбрать документ. – cnu
@cnu Вы можете добавить _id вот так, отредактировал – Sammaye
спасибо большое. Я думаю, что работает (по крайней мере выбирает правильное количество документов). Я буду отмечать ваш ответ как принятый после проверки идентификаторов документов. – cnu