gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:56:57 27 4
gpt4 key购买 nike

我有一个现有的程序,我试图在 pymongo 中使用 find_one 获取与 key aws_account_id 匹配的最后插入的文档。

我正在使用这个查询来执行抓取:

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

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

enter image description here

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

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

提前致谢,罗宾

最佳答案

*args 中为find_one() 使用sort

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

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

如果您还没有这样做,您可以导入 pymongo 并使用 pymongo.DESCENDING 标记,或者只是 -1 来指示“降序排列。前者可能使代码更清晰。

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

关于python - 如何在 pymongo 中使用 find_one 获取最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49871030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com