MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment récupérer les derniers enregistrements à l'aide de find_one dans pymongo

Utiliser sort dans le *args pour find_one()

report = securitydb.scout.find_one(
  {'aws_account_id': aws_account.account_number},
  sort=[( '_id', pymongo.DESCENDING )]
)

Utilisation de _id ici parce que le ObjectId les valeurs vont toujours "augmenter" au fur et à mesure qu'elles sont ajoutées, mais toute autre chose comme une "date" qui indique également la "dernière" peut être utilisée tant qu'elle est dans le DESCENDING ordre de tri, ce qui signifie que "le plus récent" est en "haut" des résultats.

Vous pouvez import pymongo si vous ne l'avez pas déjà fait et utilisez le pymongo.DESCENDING jeton, ou juste -1 pour indiquer l'ordre "décroissant". Le premier rend probablement le code beaucoup plus clair.

Notez également le "dict ordonné" car l'ordre des clés pour le "tri" est généralement important, ou du moins si vous souhaitez trier sur la combinaison de plusieurs clés.