关于pymongo的find方法的错误总结
当时我查询到数据后, 想要查看一下有多少条数据再遍历,但是遍历数据时总是不进入for循环, 代码如下:
url_list = db['url'].find({}, {'_id': 0})
url_list_len = len(list(url_list))
for url in url_list:
print(url)
我用debug查看第一行数据, 发现数据很正常, 第二行也能输出数据库中的总数据量, 但是到第三行的时候, url_list中没有数据, 调试了好久发现是第二行影响的.
其实这问题很好理解, 就是游标问题, pymongo的find查询结果是一个游标对象, 当我们用list函数转换游标对象后, 游标对象就执行了一遍, 执行完毕后, 这个游标就自动释放了, 所以url_list为空, for循环就进不去了