我有一个最奇怪的问题。我有这段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。你知道这里会发生什么吗?
答案 0 :(得分:0)
首先从集合“records”查询,然后从集合“record”查询。那是一个错字吗?如果这是你的错误的原因:一个不存在的集合中的“find_one”返回None。
答案 1 :(得分:0)
显然,答案非常简单明了:程序运行的时间足够让人们在查询记录时删除记录。不可能,但似乎是真的。