MongoDB增删改查的python操作

【Python语言基础】——Python MongoDB 删除文档 delete_one() 方法的第一个参数是 query 对象,用于定义要删除的文档。delete_many() 方法的第一个参数是一个查询对象,用于定义要删除的文档。要删除一个文档,我们使用 delete_one() 方法。要删除多个文档,请使用 delete_many() 方法。注释:如果查询找到了多个文档,则仅删除第一个匹配项。删除集合中的所有文档。 阅读详情

前置知识

如果你已经大致了解了MongoDB的基本概念,请跳到第二节。
MongoDB文档数据库的存储结构分为四个层次,从大到小依次是:

  • 数据库database
  • 集合collection
  • 文档document
  • 键值对 key-value pair

数据库由集合组成,集合没有固定的结构,一个集合是一些文档构成的对象。考虑到集合可以插入任意格式和类型的数据,一个集合没有固定的标准,那么就有一个问题:我们该如何得知一个文档该插入哪个集合呢?所以,通常情况下插入集合的数据都会有一定的关联性,以某个主题或者在语义区分。与关系数据库的区别也就仅仅在于集合内的结构了。所以可以说非关系型的数据库(如MongoDB) 玩法更多,使用更灵活。

然后谈谈文档。文档是MongoDB的核心概念,是数据的基本单元,与关系数据库中的行十分类似。文档是一组有序的键值对集合。在同一个集合当中的文档不要求键保持一致,例如,一个集合可能包含用户信息,但每个用户文旦更可以包含不同的信息,如用户名、年龄、电子邮件地址等,而这些字段并不是所有文档都必须具备的。虽然集合不强制要求文档结构,但是数据建模的不同可能会影响程序性能和数据库容量。文档之间的关系是数据建模需要考虑的重要因素。文档与文档之间的关系包括嵌入和引用两种。

文档的数据结构与JSON相同,所有存储在集合中的数据都是BSON格式。(*BSON: Binary JSON)

键值对,键key起到唯一索引的作用,一个键对应一个值,一个值不是指数值而是数据。数据可以是列表list包含着的一组key-value,也可以是单独的string, int, double, char, bool,甚至是png,jpg等等

Create operation

  • 插入多个文档

    import pymongo
    
    client = pymongo.MongoClient(host='localhost', port=27017)
    
    db = client.market
    
    coll = db.customer
    
    docs = [
        {"name": "zhao", "age": 20, "gender": "male", "hasCar": False},
        {"name": "wang", "age": 33, "gender": "male", "hasCar": True},
        {"name": "lu", "age": 23, "gender":"female", "hasCar": True}
    ]
    result = coll.insert_many(docs)
    
    cursor = coll.find()
    for doc in cursor:
        print(doc)
    
    client.close()
    
  • 插入单个文档

    doc = {"name": "an", age: 24}
    result = coll.inset_one(doc)
    

Retrieve operation

  • 基本语法:

    find({查询条件}, {返回字段})
    # 返回字段这里,1表示返回,0表示不返回
    
  • 查看整体信息

    import pymongo
    
    client = pymongo.MongoClient(host='localhost', port=27017)
    
    dblist = client.list_database_names() ### 查看所有数据库信息
    print(dblist) # ['admin', 'config', 'items', 'local', 'market']
    
    db = client.market
    
    collist = db.list_collection_names() ### 查看当前数据库下所有集合信息
    print(collist) # ['users', 'places', 'items', 'customer']
    
    client.close()
    
  • 查看集合内所有文档信息

    import pymongo
    
    client = pymongo.MongoClient(host='localhost', port=27017)
    
    db = client.items
    
    coll = db.items
    
    cursor = coll.find()
    
    for doc in cursor:
        print(doc)
    
    client.close()
    
  • 使用等值条件检索特定信息

    import pymongo
    
    client = pymongo.MongoClient(host='localhost', port=27017)
    
    db = client.market
    
    coll = db.customer
    
    cursor = coll.find({"age": 14}) # 保存了所有包含这个键值对的文档
    # cursor = coll.find({"age": 21, "name": "zhang"}) 也可以使用多个键值对匹配
    
    for doc in cursor:
        print(doc)
    
    client.close()
    
  • 使用比较运算符检索信息

    $lt是小于, gt是大于,gt是大于,gt是大于,gte 大于等于,lte小于等于,lte小于等于,lte小于等于,eq等于,$ne不等于.

    mongodb当中使用运算符都是以key-value的形式。所以前面的key就要加上匹配符,用法如下:

    import pymongo
    
    client = pymongo.MongoClient(host='localhost', port=27017)
    
    db = client.market
    
    coll = db.customer
    
    cursor = coll.find({"age": {"$lt": 20}}) # 小于20;
    
    for doc in cursor:
        print(doc)
    
    client.close()
    
  • 多个条件的AND检索

    cursor = coll.find(
        {"$and":[{"age":{"$lt": 20}}, {"name":"gao"}]}
    )
    
  • 多个条件的OR检索

    cursor = coll.find(
       {"$or":[{"age":{"$gt":20}}, {"age":{"$lt": 15}}]}
    )
    
  • 排序SORT

    collection.find().sort('排序参数', 排序顺序)
    # 排序顺序: 1升序, -1降序
    

Update operation

  • 基本语法

    collection.update_one(para1, para2) # 只更新第一个符合目标的
    collection.update_many(para1, para2) # 更新所有符合目标的
    # para1,para2都是字典且不能省略
    # para1表示需要更新的目标
    # para2表示更新的内容
    
  • 更新多条数据

    target = {"age": {"$lt": 23}}
    context = {"$set": {"age": 24}}
    
    result = coll.update_many(target, context)
    
    print("update number:", result.modified_count)
    
  • 替换文档

    collection.replace_one(para1, para2)
    # para1 要替换的目标的值()
    # para2 被替换的内容
    # replace_one只会替换第一个符合条件的文档,但是替换的是全部的文档内容,而非只有para1的内容
    
  • 更新操作符 [本文只做简单概述,不探讨用法和例子]

    MongoDB当中还包含了很多更新操作符,这些修饰符可用在更新操作中,例如 db.collection.update_many() 和 db.collection.findAndModify()

    基本的使用语法是

    {
    	<operator1>: {<field1>: <value1>, ...},
    	<operator2>: {<field2>: <value2>, ...},
    	...
    }
    

    字段相关的更新操作符有:

    • $currentDate 将字段的值设置为当前日期,可以是日期或时间戳
    • $inc 将字段的值按照指定量递增
    • $min 仅当指定值小于现有字段值时才更新字段
    • $max 仅当指定值大于现有字段值时才更新字段
    • $mul 将字段的值乘以指定量
    • $rename 重命名字段
    • $set 设置文档中字段的值
    • $setOnInsert 如果某一更新操作导致插入文档,则设置字段的值,对现有修改文档的更新操作没有影响。
    • $unset 从文档中删除指定的字段

    阵列相关的操作符

    • $ 充当占位符,用于更新与查询条件匹配的第一个元素
    • $[] 充当占位符,以更新数组中与查询条件匹配的文档中的所有元素。
    • $[] 充当占位符,以更新与查询条件匹配的文档中所有符合 arrayFilters 条件的元素。
    • $addToSet 仅向数组中添加尚不存在于该数组的元素。
    • $pop 删除数组的第一项或最后一项。
    • $pull 删除与指定查询匹配的所有数组元素。
    • $push 向数组添加一项。
    • $pullAll 从数组中删除所有匹配值。

    阵列相关的修饰符

    • $each 修改 push 和 addToSe运算符,以在数组更新时追加多个项目。
    • $position 修改 push运算符,以指定在数组中添加元素的位置。
    • $slice 修改 push 运算符以限制更新后数组的大小。
    • $sort 修改 push 运算符,以对存储在数组中的文档重新排序。

    这些操作符具体的用法和例子我会在后面进行更新。

Delete operation

doc = {
    "age":{"$gt":29}
}

result = coll.delete_many(doc)

print("delete number:", result.deleted_count)

去重使用distinct方法

collection.distinct('键名')

参考

https://www.cnblogs.com/testlearn/p/15045172.html
https://blog.youkuaiyun.com/weixin_44904817/article/details/105975704

Python 操作 MongoDB:pymongo 库实现数据增删改查 本文系统介绍了Python中pymongo库操作MongoDB的方法。首先讲解了MongoDB的安装启动和pymongo库的安装配置,随后详细演示了数据增删改查操作的实现。通过insert_one/many()实现数据插入,find_one/find()完成数据查询,update_one/many()执行数据修改,delete_one/many()进行数据删除。文章结合具体代码示例和输出结果,深入解析了各方法的参数含义与执行原理。通过学习本文,读者可以全面掌握使用pymongo库高效管理MongoDB数据的 阅读详情

相关推荐

Java和Python访问MongoDB + 增删改查操作 全详细教程 附jar包和程序代码

本文介绍使用Java和Python访问MongoDB的方法,并演示在eclipse、IDEA、PyCharm、jupyter四种主流IDE中的操作过程,实现对本地MongoDB数据库的增删改查操作,推荐在命令行配合查看数据操作的结果,以验证相应操作是否成功。

x_8efengfan的博客 1564

使用pymongo对MongoDB数据库进行增删改查

当使用Python和 pymongo连接MongoDB时,可以执行各种操作来增加、修改、删除和查询文档。

ak_bingbing的博客 847

基于STM32的家用新风系统智能控制器 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了家用新风系统智能控制器的全功能开发,覆盖多传感器数据采集、双模式控制、PID调速、异常报警、掉电记忆等核心功能,全程采用保姆式无跳步教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 470

Python操作MongoDB入门四:删除数据

【代码】Python操作MongoDB入门四:删除数据。

得塔云的博客 2133

手把手教你用Vivado的STARTUPE3原语驱动S25FL256S Flash(附完整Verilog代码)

本文详细介绍了如何利用Xilinx UltraScale+系列FPGA的STARTUPE3原语驱动S25FL256S SPI Flash,包括原语配置、SPI协议实现、状态机设计及调试技巧。通过完整的Verilog代码示例和性能优化建议,帮助开发者高效完成Flash通信解决方案的开发与集成。

weixin_30660027的博客 460

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 438

使用Python实现MongoDB的简单增删改查操作

通过本文,你已经学会了如何使用Python和pymongo库进行MongoDB的基本操作。这些操作对于数据管理和分析至关重要。现在,你可以开始探索MongoDB的更多高级功能,如聚合查询、索引优化等。希望你在使用MongoDB进行数据操作的旅程上一切顺利!🎉👩‍💻。

coder-tll 的博客 1209

【读论文】AI陪伴场景长期记忆(用户画像)解决方案

在长程人机交互中,如何让 AI 记住用户,不再是简单的“检索增强(RAG)”就能解决的问题。传统的向量数据库面临“信息信噪比低”、“人格不一致”以及“随着对话无限增长而崩塌”的困境。MemTensor 团队联合人大提出的Inside Out框架,从认知心理学汲取灵感,提出了一种基于PersonaTree(人格树)的显式记忆进化机制。该方案通过训练一个轻量级的(使用 DeepSeek-R1 蒸馏数据 + GRPO 强化学习),实现了将非结构化对话流实时压缩为结构化树操作(新增|更新|删除)。

kakaZhui的博客 820

如何使用 Python 操作 MongoDB,包括连接、插入、查询、更新和删除数据,以及进阶用法

MongoDB 是一种流行的 NoSQL 数据库,支持面向文档的数据存储。Python 是一种流行的编程语言,提供了许多库和工具,方便与 MongoDB 进行交互。在本文中,我们将介绍如何使用 Python 操作 MongoDB,包括连接、插入、查询、更新和删除数据,以及一些高级用法。连接 MongoDB在使用 Python 操作 MongoDB 之前,我们需要安装 pymongo 库,它是 Python 与 MongoDB 交互的官方库。

aobulaien001的博客 4443

DDR5内存命令真值表详解:如何正确解析JESD79-5标准中的关键指令

本文深度解析JESD79-5标准中的DDR5内存命令真值表,将其视为动态通信协议进行拆解。详细阐述了1-Cycle与2-Cycle命令的区别、Bank Group寻址机制以及模式寄存器(MR)操作流程,为硬件与固件工程师提供了从信号解析到系统调试的完整实战指南,是理解和优化高性能计算平台内存子系统的核心。

numpy6sculptor的博客 553

SoC验证新思路:除了UVM仿真,你还可以试试Cadence JasperGold的形式化验证

本文深入探讨了Cadence JasperGold形式化验证在SoC设计中的创新应用,对比传统UVM仿真验证,详细解析了其数学穷尽性验证优势。通过实战案例展示了JasperGold在总线协议、时钟域交叉等关键场景的验证方法,并提供了混合验证流程设计与效能优化方案,帮助工程师提升验证效率30%以上。

weixin_30566063的博客 122

python mongodb_python 操作 mongodb 增删改查

导入模块# coding:utf-8from bson import ObjectIdfrom pymongo import MongoClient建立数据的连接conn = MongoClient('localhost', 27017)创建数据库db = conn.testdb向数据库中插入多条数据db.col.insert([{"name": 'yanying', 'province': '江...

weixin_39766071的博客 102

Unreal5 从入门到精通之 学习Niagara特效系统

UE5 Niagara粒子系统解析 Niagara是UE5中的高性能粒子特效系统,相比传统粒子系统具有完全可编程性和可视化节点编辑两大特点。核心单元发射器(Emitter)分为模板发射器(预设效果如喷泉、火焰)和空白发射器(高度自定义)。系统提供13种预设模板,包括吹飞粒子、五彩纸屑爆发、动态光束等常见特效。 Niagara采用三级模块化设计: 系统级:全局参数设置与更新 发射器级:控制粒子生成规则与行为 粒子级:处理单个粒子的生命周期和渲染 关键模块包括初始化粒子属性、物理模拟、颜色渐变等,支持GPU加速

TxNet 1127

python操作MongoDB库,增删改查如何做

Pymongo是python的一个操作Mongodb的库。 首先下载python中MongoDB的驱动程序 Linux下解压 tar -zxvf mongodb-linux-x86_64-3.0.6.tgz Windows下CMD安装 pip install pymongo 在mongo安装目录中的bin目录执行mongod命令来启动mongdb服务 连接数据库 ...

python学习者的博客 1042

流程图详解Transformer最核心的多头注意力机制,QKV流向清晰明了

本文详细讲解了Transformer模型中的多头注意力机制(Multi-head Attention)。通过类比多人评估同一事物的不同视角,说明多头机制能综合多个注意力权重获得更有效的输出。文章逐步推导了多头注意力的计算过程:将输入矩阵X(4×512维)分别与8组Q、K、V权重矩阵相乘,得到8组head(每组4×64维),拼接后经Wo矩阵变换恢复为4×512维输出。整个过程涉及37个待训练参数矩阵(1个Wo、8组Wq/Wk/Wv)。该机制通过并行计算多个注意力头,能更全面捕捉输入特征间的复杂关系。

人工智能研究所的博客 264

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python操作Mongodb (增删改查)

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。   在高负载的情况下,添加更多的节点,可以保证服务器性能。   MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。   MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以

IAlexanderI的专栏 2974

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python连接MongoDB数据库方法及增删改查等操作小结。

Y9   建议安装MongoDB可视化工具“Robo 3T”,可以很直观的看到对MongoDB操作后的数据。 1、‘Robo 3T’的安装,网上很多途径可下载,在此分享我使用的版本: 链接:https://pan.baidu.com/s/1EcjmUVkXz1GQeTXy2fMk9g 提取码:o1zd ① 数据库启动mongoDB后,打开Robo 3T连接mongodb数据库 ② 保存,连接...

杨先生的博客 8569

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python 连接MongoDB并进行增删改查操作

#!/usr/bin/env python # coding=utf-8 import pymongo from pymongo import MongoClient from pymongo.errors import DuplicateKeyError # 1. 导入MongoClient # 首先,需要一个类,把对数据库的增删改查操作封装为一个接口 # 该类的名名字随便期 class M...

charles_zhang_的博客 572

python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查...

python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.htmlhttp://api.mongodb.com/python/current/api/pymongo/collection.html 1.安装python操作mongodb的程序pi...

reblue520的专栏 947

python操作数据库MongoDB进行增删改查

NOSQL泛指非关系型数据库,是基于键值对的,数据之间没有耦合性,性能非常高。这里介绍利用pyython对MongoDB的数据库进行操作。 一、前期准备 确保已经成功安装好了MongoDB,并且成功启动。如果遇到无法连接到27017端口的错误,可能是数据库还没启动。Mac下安装可以看Mac OSX下 Python网络爬虫开发基础篇-数据库MongoDB安装: https://blog.csd...

燎原 2916

python连接mongoDB,进行增删改查操作

1.下载mongo的驱动模块:python -m pip install pymongo 2.创建连接,指定数据库,指定集合 #mongoDB import pymongo client=pymongo.MongoClient('mongodb://localhost:27017') client #指定数据库 db=client.test db #指定集合 collection=db.students collection 3.插入数据 #插入数据 student={ 'id':'

s19980228的博客 492

Python连接Mongodb数据库进行增删改查(CRUD)基本操作

Python 连接Mongodb数据库进行增删改查(CRUD)基本操作 一、安装驱动pymongo pip3 install pymongo 二、创建数据库和集合 创建数据库需要使用 MongoClient对象,并且指定连接的URL地址和要创建的数据库名。 #-*- coding:utf-8 -*- import pymongo # 链接本地客户端 myclient = pymongo.M...

得未曾有 心净踊跃 2139

RUN__IT # Python操作MongoDB的方法-增删改查

Python操作MongoDB的方法 # -*- coding: utf-8 -*- # @Time : 2020/12/16 13:40 # @Author : admin from pymongo import MongoClient from bson.objectid import ObjectId class Mongo_DB: def __init__(self): conn = MongoClient('xxx.xx.241.245', 27017)

RUN__IT的博客 278

Python编程:mongodb的基本增删改查操作

第一步当然是配置环境,启动数据库服务 mongodb的安装及简单使用-mac环境 引入模块 # -*- coding: utf-8 -*- # @File : pymongo_demo.py # @Date : 2018-06-02 # @Author : Peng Shiyu import pymongo 1、创建MongoDB的连接对象 # client = p...

彭世瑜的博客 2865
上一篇: MongoDB当中的命名限制
下一篇: C++实现字符串拼接
Ayu阿予
博客等级 码龄5年 456粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Ayu阿予

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

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

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

打赏作者

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

抵扣说明:

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

余额充值