当前位置: 首页 > 科技观察

Python也可以操作MongoDB数据库_0

时间:2023-03-13 09:05:49 科技观察

大家好,我是Python进阶。前言作为非关系型数据库的代表——Mongo,可谓是让人又爱又恨。让人爱的是它的方便,让人讨厌的是它的配置,真是坑爹啊。那么今天我们就来深入分析一下。1、下载并导入Python模块pipinstallpymongofrompymongoimportMongoClient连接Mongo2、连接Mongo数据库1、普通登录,也称访客登录,安全级别低MongoClient('mongodb://localhost:27017/')2、用户密码登录,安全级别高MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')连接了一个用户名为hwzjj,密码为123456的用户。3.执行插入操作。为了安全起见,我们使用用户名和密码登录,然后创建一个集合。不知道大家有没有用Mongo创建集合的印象。无论如何,我仍然拥有它。废话不多说,先来创建两个合集。db.createCollection(name='student',option={capped:true,autoIndexId:true,size:100,max:1000})db.createCollection(name='teacher',option={capped:true,autoIndexId:true,size:200,max:2000})这创建了一个学生和老师的集合。然后我们将显示所有集合名称:showcollections;然后我们向集合中插入数据,在Mongo中是这样插入的:可以看到我们已经成功插入了两条数据,接下来我们使用Python来插入数据。1.直接使用创建的集合从pymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')插入数据连接数据库db=client['hw']selectthedatabasehwcoll=db['student']Selectcollectionres={'id':'0003','name':'willful','age':43}first=coll.insert_one(res)向集合中插入数据print(first.inserted_id)打印插入数据id(每个插入数据都会有)2.自己创建集合插入数据frompymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client['hw']db.create_collection('teacher')创建集合res={'id':'0001','name':'boy','age':36}last=db.student.insert_one(res)插入数据print(last.inserted_id)printid3.插入多条数据importrandomfrompymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client['hw']coll=db['student']defget():foryinrange(100000):data={'id':y,'name':'user--'+str(y),'age':random.choice(range(100))}yielddataforyinget():coll.insert(y)也是Insert100000条数据,但是数据比Mysql慢,大家可以自己测试一下。注意:执行插入操作时,Insert最多可以插入4条相同的记录。4.执行更改操作,还是需要先获取集合,然后修改集合中的内容。1.从pymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client['hw']coll=db['student']coll.update_one({'name':'user--10'},{'$set':{'name':'userhasloggedout'}})更新第一个匹配到的数据2.更新我们创建的所有匹配到的数据四个相同的数据,执行程序四次:frompymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client['hw']coll=db['student']coll.insert({'id':'111','name':'hw','age':43})可以看到生成了4条相同的记录,当然最多只能生成4条记录。然后我们都修改他们的数据。coll.update({'name':'hw'},{'$set':{'name':'用户已注册'}})5.执行删除操作1.从pymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client['hw']coll=db['student']coll.insert({'id':'111','name':'hw','age':43})insertdatacoll.remove({'name':'hw'})删除名称为hw的所有数据,注意不要以id为条件删除,会报错coll.delete_many({'name':'hw'})功能同上2.从pymongoimportMongoClientclient=MongoClient('mongodb://hwzjj:123456@loc??alhost:27017/hw')db=client[中删除所有符合条件的第一条数据'hw']coll=db['student']coll.insert({'id':'111','name':'hw','age':43})coll.delete_one({'name':'hw'})删除满足条件的第一条数据6.执行查询操作1.查询满足条件的第一条数据2.查询所有满足条件的数据3.查找后删除4.替换搜索后5.Up搜索后的日期6.统计满足条件的记录数coll.find().count()#满足条件的记录数7.符合条件的数据排序coll.find().sort('name',pymongo.ASCENDING)#AscendingorderDESCENDING降序排序8.跳过https://mp.weixin.qq.com/s/34t_u-JxL3HFXvEdtgFQEg#:~:text=coll.find().sort(%27name%27%2C%20pymongo。升序).skip(1)%20%23%20%E8%B7%B3%E8%BF%87%E4%B8%80%E4%B8%AA%E8%AE%B0%E5%BD%959。限制符合条件的输出数量coll.find().sort('name',pymongo.ASCENDING).limit(2)#输出两条符合条件的记录10.通过Id查找每一条插入的数据都会生成一个id,貌似是加密过的。之前我们已经玩过了先来看看它的使用frombson.objectidimportObjectIdfind_one({'_id':ObjectId(id_name)})七、索引操作1.创建一个索引,可以看到有两个索引,一个是Mongo自动创建的,在id上的索引是刚才在name上创建的索引。2.获取索引foryincoll.list_indexes():#获取所有索引print(y)3.删除索引,可以看到刚才的索引名已经删除了,只有一条数据,所以有人问,为什么不把_id放在一起,抱歉,这个不能删除。八。小结通过本章对Pymongo的学习,相信你已经可以胜任一些日常开发了。Pymongo还有很多值得学习的地方,值得你去琢磨。我不会在这里列出它们。希望这篇文章能带你零压力上手Pymongo。