今天处理游标非空判断,一直报错:
问题: DeprecationWarning: count is deprecated. Use Collection.count_documents instead
1.如果仅仅只需要数量:
当我使用pymongo查询出对应的cursor(find出的document的迭代器),然后查看查询出数据的数量时使用如下代码:
db = MongoClient(host='192.168.18.129', port=27017) coll = db.dbname.collectionname cursor = coll.find({'name': 'zhangsan'}).limit(10) print(cursor.count()
弹出警报:DeprecationWarning: count is deprecated. Use Collection.count_documents instead. print(cursor.count())
原因
这是由于mongodb现在迭代器数据的搜集Collection.count()方式已经被弃用,更高的版本不适用。已经使用Collection.count_documents来统计了。
正确的使用方法是这样的: 但是这不是我要的,如果仅仅想知道数量,可以
num = coll.count_documents({'name': 'zhangsan'}) print(num)
2.查询结果,在遍历游标前,先判断数量
先强转为list, 再把list指向之前的变量
user_cursor = coll.find({'name': 'zhangsan'}).limit(1000) user_list = list(user_cursor) #非空判断if len(user_list) == 0: print("can't get user info ") flag = False
else:
for user in user_list:
print(user)