场景描述
平时在线下环境使用PyMongo连接MongoDB数据库时都是连接的没有用户名和密码的数据库,那么对于有用户名和密码的MongoDB数据库(线上环境)又该怎么连接呢?
代码示例
方案一
注意:该方法在 PyMongo 4.x 中被删除!!!
import pymongo
client = pymongo.MongoClient(host='host', port=27017)
# info_data 需要用户名和密码进行身份认证的数据库
db = client.info_data
# username:用户名;password:密码
db.authenticate('username', 'password')
print(db.list_collection_names())
方案二
import pymongo
client = pymongo.MongoClient(
# 主机
host=host,
# 端口
port=port,
# 用户名
username=username,
# 密码
password=password,
# 需要用户名和密码进行身份认证的数据库
authSource='info_data'
)
db = client.info_data
print(db.list_collection_names())
方案三
import pymongo
client = pymongo.MongoClient('mongodb://username:password@host:port/?authSource=info_data')
db = client.info_data
print(db.list_collection_names())
username:用户名
password:密码
host:主机
port:端口
info_data:需要用户名和密码进行身份认证的数据库