MongoDB无法找到现有文档

时间:2017-06-28 18:58:45

标签: python mongodb pymongo

我有一个最奇怪的问题。我有这段python代码,其中我使用pymongo,它作为芹菜的自动任务运行:

query_filter = {'current_data': {'$exists': True}}
record_list = [x['_id'] for x in db.records.find(query_filter, {'_id': 1})]
for i, record_id in enumerate(record_list):
    my_record = db.records.find_one({'_id': record_id})
    record_data = my_record['current_data']
    perform_action(record_data)

它给了我这个错误:

record_data = my_record['current_data']
TypeError: 'NoneType' object has no attribute '__getitem__'

records集合有63500个文档,其中约1%达到MongoDB文档(16兆字节)最大大小的80%。我有pymongo版本3.4.0。你知道这里会发生什么吗?

2 个答案:

答案 0 :(得分:0)

首先从集合“records”查询,然后从集合“record”查询。那是一个错字吗?如果这是你的错误的原因:一个不存在的集合中的“find_one”返回None。

答案 1 :(得分:0)

显然,答案非常简单明了:程序运行的时间足够让人们在查询记录时删除记录。不可能,但似乎是真的。