python3连接MongoDB(有密码有认证)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#数据写入mongodb def saveData(data): #连接mongodb数据库 client = MongoClient('mongodb://localhost:27017/') # 连接mydb数据库,账号密码认证。先连接系统默认数据库admin db = client.admin #让admin数据库去认证密码登录 db.authenticate("root", "root") #获取电影数据库test my_db = client.test #获取集合不存在创建集合 collection = my_db.movie #写入mongodb数据 try: collection.insert_one(data) except Exception: traceback.print_exc() |
一、macos下MongoDB配置账号密码流程
1 2 3 4 5 6 7 8 9 10 |
$ brew services start mongodb $ mongo > use admin > db.createUser({ user: "root" , pwd: "root", roles: ["root"]}) # 创建超级用户 > db.auth('root', 'root') # 验证用户是否设置成功,1为成功 $ vi /usr/local/etc/mongod.conf # 更改mongodb配置文件 配置文件开启强制验证,增加如下内容: security: authorization: "enabled" $ brew services restart mongodb |
二、python连接MongoDB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# -*- encoding: utf-8 -*- import pymongo # 账号密码方式连接MongoDB | "mongodb://用户名:密码@公网ip:端口/" client = pymongo.MongoClient("mongodb://root:root@127.0.0.1:27017/") # 指定数据库 db = client.test # 指定集合 collection = db.students # 插入数据 student = {'id': '20190101', 'name': 'Tom3', 'age': 20, 'gender': 'female'} ret = collection.insert_one(student) print('insert_id:', ret.inserted_id) # 更新数据 condition = {'name': 'Tom3'} edit = {'age': 21} ret = collection.update_one(condition, {'$set': edit}) print('update:', ret.matched_count, ret.modified_count) # 查询 info = collection.find_one(condition) print('select:', info) # 计数 count = collection.count_documents({}) print('count:', count) # 删除数据 ret = collection.delete_one(condition) print('delete:', ret.deleted_count) |
转载请注明:人工智能笔记 » python3连接MongoDB(有密码有认证)