pymongo升級4.0后的認證問題


  最近pip install pymono后,連接時認證出現問題,報了TypeError: 'Collection' object is not callable. If you meant to call the 'authenticate' method on a 'Database' object it is failing because no such method exists.的錯

 

Traceback (most recent call last):
  File "D:/work/py/test.py", line 37, in <module>
    admin.authenticate("root", "123456")
  File "C:\python3\lib\site-packages\pymongo\collection.py", line 2583, in __call__
    self.__name)
TypeError: 'Collection' object is not callable. If you meant to call the 'authenticate' method on a 'Database' object it is failing because no such method exists.

 

 

  之前一直這樣連接是沒有問題的,於是再想是不是版本問題,查找一通文檔后,確實是pymongo升級到4.0后的認證方式改變

  官方文檔中解釋如下:

     

  

  之前的認證方式:

  

client = pymongo.MongoClient("127.0.0.1", 43127)
admin = client.get_database("admin")   # 連接所需數據庫
admin.authenticate("root", "123456")

  解決辦法:

  1、pymongo降到4.0以下

    pip uninstall pymongo

    pip install pymongo==3.xx.xx

 

  2、更改為新的認證方式:

    client = pymongo.MongoClient("127.0.0.1", 43127, username="root", password="123456")

  參考:

    https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html#database-authenticate-and-database-logout-are-removed

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM