繁体   English   中英

如何在pymongo中使用find_one获取最新记录

[英]How fetch latest records using find_one in pymongo

我有一个现有的程序,我正在尝试使用find_one中的find_one来获取最后插入的文档,该文档与密钥aws_account_id匹配。

我正在使用此查询来执行提取:

report = securitydb.scout.find_one({'aws_account_id': aws_account.account_number})

但是此查询返回错误的文档。 下图显示了我得到的预期结果和错误的结果。

在此输入图像描述

在图像中,两个文档都具有相同的aws_account_id,但最后插入了红色文档。 所以预期的结果是红色标记的文件,但它拉出黄色标记的文件。

我不确定我是否需要使用排序或类似的东西。 我得到了一些解决方案,但这些都是基于纯mongo查询。 我需要帮助用pymongo这样做。

谢谢提前,罗宾

*args使用sortfind_one()

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

在这里使用_id是因为ObjectId值在添加时总是会“增加”,但是只要它处于DESCENDING排序顺序,就可以使用任何其他类似“日期”的东西,它也表示“最新”,这意味着“最新的“在结果的”顶部“。

如果您还没有这样做,可以import pymongo并使用pymongo.DESCENDING标记,或者只使用-1表示“降序”顺序。 前者可能会提供更清晰的代码。

另请注意“有序字典”,因为“排序”键的顺序通常很重要,或者至少如果要对多个键的组合进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM