MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come recuperare gli ultimi record usando find_one in pymongo

Usa sort nel *args per find_one()

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

Usando _id qui perché ObjectId i valori aumenteranno sempre man mano che vengono aggiunti, ma qualsiasi altra cosa come una "data" che indica anche l'"ultima" può essere utilizzata purché sia ​​nel DESCENDING ordinamento, il che significa che "l'ultimo" è in cima ai risultati.

Puoi import pymongo se non l'hai già fatto e usa il pymongo.DESCENDING token, o semplicemente -1 per indicare l'ordine "decrescente". Il primo probabilmente rende il codice molto più chiaro.

Nota anche il "dict ordinato" poiché l'ordine delle chiavi per "ordinare" è solitamente importante, o almeno se vuoi ordinare in base alla combinazione di più di una chiave.