python操作MongoDB

pymongo模块

安装

pip install pymongo

pymongo库的使用

创建一个数据库
创建数据库需要使用MongoClient对象,并且指定连接的url地址端口号和要创建的数据库名

注:在MongoDB中,数据库只有在内容插入后才会创建!!!也就是说,数据库创建后要创建集合(数据表)插入一个文档(记录),数据库才会真正的创建

创建连接

MongoClient是MongoDB的客户端代理对象,可以用来执行增删改查操作,而且还内置了连接池

import pymongo
client = pymongo.MongoClient(host="localhost", port=27017)
// 或者用这种方式:`client = pymongo.MongoClient("mongodb://localhost:27017")`
client.admin.authenticate("admin", "abc123456")

[导入MongoClient,创建连接并且切换到admin逻辑库,进行MongDB的身份验证(输入用户名和密码)]

数据写入

insert_oneinsert_many两个函数可以向MongDB中写入数据

client.school.teacher.insert_one({"name":"李璐"})
client.school.teacher.insert_many([
	{"name":"陈刚"},
	{"name":"郭丽丽"}
])

[insert_one表示插入一条数据;insert_many表示插入多条数据。注意书写格式!!!]

数据查询

find_onefind两个函数可以从MongDB中查询数据

teachers=client.school.teacher.find({})
for teacher in teachers:
	print(teacher["_id"],teacher["name"])

teacher=client.school.teacher.find_one({"name":"李璐"})
print(teacher["_id"],teacher["name"])

额外补充:
client.school.teacher.find({"name": {"$regex": "^李"}})
// 在find()方法里,可以嵌套进正则表达式,用`$regex`方法即可。

[find_one表示查询一条记录;find表示查询多条记录,可以用for循环遍历输出查询到的所有数据]

数据修改

update_oneupdate两个函数可以修改MongDB中的数据

client.school.teacher.update_many({},{"$set":{"role":["班主任"]}})
// 修改所有老师的数据,添加role新字段,并设置值为"班主任"

client.school.teacher.update_one({"name":"李璐"},{"$set":{"sex":"女"}})
// 修改一条记录,添加新字段sex,并设置值为“女”

client.school.teacher.update_one({"name":"李璐"},{"$push":{"role":"年级主任"}})
// 向李璐的数据中role字段添加“年级主任”的值
数据删除

delete_onedelete_many两个函数可以修改MongoDB数据

client.school.teacher.delete_one({"name":"李璐"})

client.school.teacher.delete_many({})
其他操作总结

在这里插入图片描述
案例:
distinctsort函数的参数类型比较特殊!!需要额外注意!!!

teachers=client.school.teacher.find({}).skip(0).limit(10)
// 分页查询出前10条记录

teachers=client.school.teacher.distinct("name")
// 查出name参数不重复的数据

teachers=client.school.teacher.find().sort([("name",-1)])
// 查出所有老师数据,并以倒序输出

[注意!!!
distinct()的参数是字符串类型!!!
sort()的参数类型为列表,而列表中的元素为元组,因为可以对多条记录进行排序,所以条件都写在列表的元组中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值