用python操作MongoDB

本文介绍了使用Python的pymongo模块与MongoDB交互的方法,包括连接数据库、增删改查等基本操作。通过示例展示了如何插入单条和多条记录,以及更新文档信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要想用python操控MongoDB,需要引入一个python模块pymongo。

首先引入pymongo模块,用账号密码进入数据库,为了使操作像mongodb的操作靠近我们用db接收db_select数据库。

import pymongo
client=pymongo.MongoClient(host="localhost",port=27017)
client.admin.authenticate("root","root")
db=client.db_select

下面我们来进行数据库的增删改查操作:

1.增加 和 查找

for i in range(5):
    db.blog.insert({"name":str(i)+"毛","age":18-i,"gender":"nan","address":"huoxing"})
for i in db.blog.find():
    print(i)

在python的命令行中,db.collection.find()并不能查找到集合中的数据,如果想查看集合中的数据,需要将其遍历。

<pymongo.cursor.Cursor object at 0x000001BE289DA358>
{'_id': ObjectId('5b374a124a81f108f02193f5'), 'name': '0毛', 'age': 18, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f6'), 'name': '1毛', 'age': 17, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f7'), 'name': '2毛', 'age': 16, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f8'), 'name': '3毛', 'age': 15, 'gender': 'nan', 'address': 'huoxing'}
{'_id': ObjectId('5b374a124a81f108f02193f9'), 'name': '4毛', 'age': 14, 'gender': 'nan', 'address': 'huoxing'}

下面我们用insert_one来向数据库中添加一个文档、

db.blog.insert_one({"name":"duanyu","age":23,"gender":"nan","address":"dali"})

如何判断其是否添加进blog里了呢,我们可以用find_one进行查看,我们来查找name为duanyu的人

print(db.blog.find_one({"name":"duanyu"}))

查询结果是:

{'_id': ObjectId('5b374ba54a81f121a4da3aa2'), 'name': 'duanyu', 'age': 23, 'gender': 'nan', 'address': 'dali'}

下面我们用insert_many来向集合添加多个文档

db.blog.insert_many([{"name":"qianfeng","age":30,"address":"xixia","kongfu":"xianglongshibazhang"},
                    {"name":"xuzhu","age":26,"address":"shaolinsi"}])

查看xuzhu和qianfeng是否存在

for i in db.blog.find({"name":{"$in":["xuzhu","qianfeng"]}}):
    print(i)

结果如下:

{'_id': ObjectId('5b374deb4a81f121a8c0a0b6'), 'name': 'qianfeng', 'age': 30, 'address': 'xixia', 'kongfu': 'xianglongshibazhang'}

{'_id': ObjectId('5b374deb4a81f121a8c0a0b7'), 'name': 'xuzhu', 'age': 26, 'address': 'shaolinsi'}

2. 修改数据

(1) 我们用update来更改年龄为15的人的信息

db.blog.update({"age":15},{"age":16,"address":"yueqiu"})db.blog.update({"age":15},{"age":16,"address":"yueqiu"})

最后查找遍历

for i in db.blog.find():
    print(i)

发现 3毛的信息如下

{'_id': ObjectId('5b374a124a81f108f02193f8'), 'age': 16, 'address': 'yueqiu'}

(2) 我们有update_one来修改2毛的信息






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值