【发布时间】:2022-12-17 07:28:51
【问题描述】:
我正在使用 pymongo 检索 100 个对象的游标。该对象只包含一个键,因为我过滤了它并且 mongodb 查询足够快。
问题是结果是一个看起来像这样的对象光标:
{'id': 1588697856264716288}
我的目标是有一个“id”列表,但只对值感兴趣,所以是这样的:
[1588697856264716288,1588697856264716289,...]
在下面的代码中,假设 idd 是包含 100 个对象的游标。最终打印mylist需要将近20秒
mylist=[]
for idd in ids:
mylist.append(idd["id"])
print(mylist)
为什么这么慢,我怎样才能加快速度?我正在使用 Python3.10
我正在尝试更快地从游标创建一个 id 列表。我尝试使用简单的 for 循环和映射,但它总是需要 15-20 秒
编辑:我刚刚意识到查询变慢的原因(尽管返回游标的速度非常快)
查询是这样的:
ids=mycol.find({"timestamp_ms": {"$gt":"1670979659"}}).limit(100)
在我的数据库中 timestamp_ms 是一个字符串......我想这是我的问题。我应该将它转换为日期以使其更快吗?
【问题讨论】:
-
当您请求
id引用时,iid对象是否正在调用您的数据库? -
如果
idd是游标,那么idd["id"]真的是数据库查询吗? minimal reproducible example,请。 -
请edit你的问题添加查询码。 20 秒意味着不是简单的 Python 代码减慢了速度。
-
迭代 100 个简单的
dict对象的列表绝对不会花费 20 秒。 -
你需要向我们展示什么ids是
标签: python python-3.x pymongo