sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo obtener los últimos registros usando find_one en pymongo

Usar sort en el *args para find_one()

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

Usando _id aquí porque el ObjectId los valores siempre van a "aumentar" a medida que se agregan, pero cualquier otra cosa como una "fecha" que también indica la "última" se puede usar siempre que esté en DESCENDING orden de clasificación, lo que significa que "más reciente" está en la "parte superior" de los resultados.

Puedes import pymongo si aún no lo hizo y use el pymongo.DESCENDING token, o simplemente -1 para indicar orden "descendente". El primero probablemente hace un código mucho más claro.

También tenga en cuenta el "dictado ordenado" ya que el orden de las teclas para "ordenar" suele ser importante, o al menos si desea clasificar según la combinación de más de una tecla.