PyMongo中的警告消息:不建议使用count

时间:2019-05-25 09:02:47

标签: mongodb

def post(self):
    if db.users.find({"email": email}).count() != 0:
        abort(400, message="email is alread used.")

弃用警告:不建议使用计数。改用Collection.count_documents。

我正在使用Python-Flask和PyMongo软件包制作身份验证服务器。每次调用post()方法时,都会显示以上弃用警告消息。

def post(self):
    if db.users.find({"email": email}).count_documents() != 0:
        abort(400, message="email is alread used.")

但是,如果我将count()更改为count_documents(),则会出现以下错误消息。

AttributeError:“光标”对象没有属性“ count_documents”

在调用count_documents()之后如何正确调用find()

2 个答案:

答案 0 :(得分:2)

方法count_documentscollection的一部分,而不是cursor的一部分(find返回游标)。 有关更多信息和有关某些运算符的说明,请参见the PyMongo documentation regarding the method

def post(self):
    if db.users.count_documents({"email": email}) != 0:
        abort(400, message="email is alread used.")

答案 1 :(得分:0)

change  : print(db.find("ut", {}).count())
to : print(db.count_documents("ut", {}))

它报告: 'Database' 对象没有属性 'count_documents'

如何解决?