目录
1、下载安装包,导入安装包,并尝试连接,方式一:
# 安装 pip install pymongo mongodb的安装包
# 导入安装包
from pymongo import MongoClient
# 尝试连接,此处连接方式有两种:
# url方式访问
url = "mongodb://%s:%s@%s" % ('test', 'test01', "ip:port")
conn = MongoClient(url)
# 连接对应的库
db = conn.test
print(db)
结果:
Database(MongoClient(host=['ip:port'], document_class=dict, tz_aware=False, connect=True), 'test')
2、下载安装包,导入安装包,并尝试连接,方式二:
# 导入安装包
from pymongo import MongoClient
# 尝试连接,此处连接方式有两种:
# 对象方式访问
conn = MongoClient(host=ip, port=port, username='test', password='test01')
# 连接对应的库
db = conn.test
print(db)
结果:
Database(MongoClient(host=['ip:port'], document_class=dict, tz_aware=False, connect=True), 'test')
3、看似已经可以正常进行库内表的访问:
# 无论以哪种连接方式,之后访问库内的表
print(db.f_test01.find_one())
结果报异常:
pymongo.errors.OperationFailure: Authentication failed., full error:
# 通过网上查找的解决方式
db.authenticate('test', 'test01')
结果继续报异常,尝试失败,报此方法不存在:
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.
4、通过调整访问参数,问题得到解决:
# 在原先的连接方式处增加要访问的目标库
# authSource='test' 参数
conn = MongoClient(host=ip, port=port, username='test', password='test01', authSource='test')
# 在此执行第三步的请求问题得到解决,正常返回结果
# 或者改变url
url = "mongodb://test:test01@ip:port/?authSource=test"