Python学习 Day52 Python与MongoDB的交互操作 03

Python与MongoDB的交互

安装第三方模块

pip install pymongo -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
在这里插入图片描述

使用步骤

#(1)导入pymongo
import pymongo

#(2)连接客户端
client = pymongo.MongoClient('localhost',27017)

#(3)获取数据库
db = client.student 或 client['student']

#(4)获取集合
collection = db.stu
collection = db['stu']

一、插入数据

1.向数据库中插入一条数据

stu = {
    
    'name':'张依依','age':20,'gender':'女'}
collectuon.insert_one(stu) #添加一条数据

在这里插入图片描述
2.向数据库中插入多条数据

#一次插入多条数据
lst = [
    {
    
    'name':'宋莉','age':23},
    {
    
    'name':'王超','gender':'男'},
    {
    
    'name':'何舒','age':24}
]
collectuon.insert_many(lst)

在这里插入图片描述


二、修改数据

1.将李四的年龄修改为20岁

#修改一条数据
collectuon.update_one({
    
    'name':'李四'},{
    
    '$set':{
    
    'age':20}})

在这里插入图片描述
2.将绮梦的性别都改为“女”

#同时修改多条数据
collectuon.update_many({
    
    'name':'绮梦'},{
    
    '$set':{
    
    'gender':'女'}})

在这里插入图片描述


三、删除数据

1.删除学生张三的信息

 #一次删除一条数据
collectuon.delete_one({
    
    'name':'张三'})

在这里插入图片描述
2.删除年龄为20的学生数据

#删除多条数据
collectuon.delete_many({
    
    'age':20})

在这里插入图片描述


四、查询操作

1.查询全部数据

#查询全部数据
result = collectuon.find()
for item in result:
    print(item)
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b2'), 'name': '宋莉', 'age': 23}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b4'), 'name': '何舒', 'age': 24}

Process finished with exit code 0

2.条件查询:
(1)查询姓名为“绮梦”的学生数据

#条件查询:查询姓名为绮梦的学生
result = collectuon.find({
    
    'name':'绮梦'})
for item in result:
    print(item)
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}

Process finished with exit code 0

(2)查询姓名当中有“绮”字的学生

2.查询姓名当中有“绮”字的学生
result = collectuon.find({
    
    'name':{
    
    '$regex':'.*绮.*'}})
for item in result:
    print(item)

五、排序

按年龄升序排序

#按年龄升序
result = collectuon.find().sort('age',pymongo.ASCENDING)
for item in result:
    print(item)
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
    
    '_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b2'), 'name': '宋莉', 'age': 23}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b4'), 'name': '何舒', 'age': 24}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}

Process finished with exit code 0

六、分页

显示升序排序后的前三条数据

#显示升序排序后的前三条数据
result = collectuon.find().sort('age',pymongo.ASCENDING).limit(3)
for item in result:
    print(item)
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
    
    '_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
    
    '_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}

Process finished with exit code 0

排序后跳过三条查三条

#排序后跳过三条查三条
result = collectuon.find().sort('age',pymongo.ASCENDING).skip(3).limit(3)
for item in result:
    print(item)
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
    
    '_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/ShengXIABai/article/details/116462110