python操作mongodb

python通过pymongo链接mongodb数据库,并进行增、删、改、查等常用操作。

1.连接mongodb

# 链接mongodb
client = pymongo.MongoClient(host='127.0.0.1',
                              port=27017,
                              username='username',
                              password='pwd'
                             )

# 查看数据库
db_list = client.list_database_names()
print("数据库:{}".format(db_list))

# 数据库为mydb
db = client.mydb

# 查看mydb数据库中的集合
col_list = db.list_collection_names()
print("mydb数据库中的集合:{}".format(col_list))

2. 添加数据

2.1 插入一条数据

# 向test集合中插入一条数据
my_col = db.test
data_one = {'_id':1,"name":"测试",'age':1} # id可以不指定,若不指定,会自动生成id
# 插入数据
my_col.insert_one(data_one) 

x = my_col.insert_one({"name":"测试02",'age':2})# 获取id:x.inserted_id
print(y.insrted_id) # 查看插入数据的id

在 mongo 控制台中查询如下:
在这里插入图片描述

2.2 插入多条数据

# 插入多条数据

data_list = [
    {"name":"测试03","age":3},
    {"name":"测试04","age":4},
    {"name":"测试05","age":5},
    {"name":"测试6","age":6},
    {"name":"测试7","age":7},
    {"name":"测试8","age":8},
    {"name":"测试9","age":9},
    {"name":"测试","age":10}
    ]

x = my_col.insert_many(data_list)
print(x.inserted_ids) # 查看插入数据的id

# my_col.insert()  支持插入一条和多条

在这里插入图片描述

3 查询数据

3.1 查询一条数据

result = my_col.find_one()
print(result)

my_query = {"name":"测试"}
result = my_col.find_one(my_query)
print(result)

3.2 查询多条数据

my_query = { "name": { "$regex": "测试\d+" } }
results = my_col.find(my_query)

for result in results:
	print(result)

# 查询所有数据
result_all = my_col.find()

在这里插入图片描述

4. 修改数据

4.1 修改一条数据

# 将name="测试03"的age改为30
my_query = { "name": "测试03" }
new_values = { "$set": { "age": 30 } }
# 修改数据
my_col.update_one(my_query, new_values)
new_data = my_col.find_one(my_query)
print(new_data)

4.2 修改多条数据

# 修改多条数据
my_query = { "name": { "$regex": "测试\d+" } }
new_values = { "$set": { "age": 100 } }
# 修改数据
x = my_col.update_many(my_query, new_values) 
print("修改记录数:{}".format(x.modified_count))

new_data = my_col.find(my_query)
for line in new_data:
    print(line)

5. 删除数据

# 删除一条数据
my_query = { "name": "测试" }
my_col.delete_one(my_query)

# 删除多条数据
my_query = { "name": { "$regex": "测试\d+" } }
x = my_col.delete_many(my_query)
print("删除记录数为:{}".format(x.deleted_count))

# 删除全部数据
my_col.delete_many({})

# 删除集合
my_col.drop()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值