Vous pouvez inverser le sens du tri pour obtenir le minimum au lieu de la valeur maximale:
# Sort by myfield (ascending value) and return first document
collection.find_one(sort=[("myfield", 1)])["myfield"]
Cet exemple suppose que:
myfield
est une valeur numérique (donc l'ordre de tri est logique pour déterminer un minimum ou un maximum)
myfield
existe dans le document correspondant renvoyé (sinon Python signalera un KeyError
lors de la tentative de référence à un champ inexistant).
- tous les documents de la collection ont une
myfield
valeur (les documents qui n'ont pas de myfield
valeur seront triés avant les valeurs numériques minimales)
Pour vous assurer que votre tri est basé sur des documents qui ont réellement une myfield
valeur, vous pouvez ajouter $exists
aux critères de requête:
collection.find_one({"myfield": {"$exists": True}}, sort=[("myfield", 1)])["myfield"]
Pour plus d'informations sur le tri, voir: