标签:count 非空 list cursor coll user print pymongo
今天处理游标非空判断,一直报错:
问题: 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)
标签:count,非空,list,cursor,coll,user,print,pymongo 来源: https://www.cnblogs.com/lshan/p/15129764.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。