一、下载python中MongoDB的驱动程序

pip install pymongo

二、python操作mongodb

1.连接mongodb

分几种情况:

(1)无密码无认证下连接

from pymongo import MongoClient
host = '10.90.10.9'   # 你的ip地址
client = MongoClient(host, 27017)  # 建立客户端对象
db = client.mydb  # 连接mydb数据库,没有则自动创建
myset = db.testset   # 使用test_set集合,没有则自动创建
myset.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
# 下面是遍历查询数据
for i in myset.find():
    print(i)          

(2)有密码连接(默认数据库 admin)

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.admin    # 连接系统默认数据库admin
db.authenticate("用户名", "密码")
collection = db.myset   # myset集合,同上解释
collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功

或者 自己定义的数据库

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.mydb    # mydb数据库,同上解释
db.authenticate("用户名", "密码")
collection = db.myset   # myset集合,同上解释
collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功

如果出错了,报错:pymongo.errors.OperationFailure: auth failed,可以增加mechanism参数,因为mongoDB有不同的认证机制,3.0版本以后采用的是'SCRAM-SHA-1', 之前的版本采用的是'MONGODB-CR'

db.authenticate("用户名", "密码",mechanism='MONGODB-CR') 

(3)有密码,可以直连admin默认数据库,不能连接自定义数据库

这种时候先连接系统默认admin,再转换为自定义数据库

from pymongo import MongoClient
host = '10.90.10.9'
client = MongoClient(host, 27017)
#连接mydb数据库,账号密码认证
db = client.admin    # 先连接系统默认数据库admin
# 下面一条更改是关键,我竟然尝试成功了,不知道为啥,先记录下踩的坑吧
db.authenticate("用户名", "密码",mechanism='MONGODB-CR') # 让admin数据库去认证密码登录
my_db = client.mydb  # 再连接自己的数据库mydb
collection = my_db.myset   # myset集合,同上解释
collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功

还有其他问题,大家一起提出,一同探讨。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐