当前位置: 首页 > news >正文

python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档

MongoDB操作实践:查询文档

from pymongo import MongoClient# 连接本地MongoDB,默认端口 27017
client = MongoClient('localhost', 27017)# 创建数据库/选择数据库 (字典类型的操作)
db = client['test_db']# 创建数据表/数据集合
collection = db['users']# 查询一个文档 查询的内容依然以 json格式传递,例如{'name':'angle'}
one = collection.find_one({'name': 'angle'})
print(f'find one user:{one}', type(one))

执行结果
在这里插入图片描述

查询多个文档

# 查询多个文档
all_users = collection.find()
for user in all_users:print(user)

执行结果
在这里插入图片描述

批量插入文档

from pymongo import MongoClient# 连接本地MongoDB,默认端口 27017
client = MongoClient('localhost', 27017)# 创建数据库/选择数据库 (字典类型的操作)
db = client['test_db']# 创建数据表/数据集合
collection = db['users']# 插入单个文档-->类似于mysql中一条数据
# user = {'name':'alice', 'age':20, 'email':'vvvvv@com'}  # 字典类型数据/文档型数据(json型数据)
#
# insert_one_result = collection.insert_one(user)# print(f'inserted_id is:{insert_one_result.inserted_id}')# 查询一个文档 查询的内容依然以 json格式传递,例如{'name':'angle'}
# one = collection.find_one({'name': 'angle'})
# print(f'find one user:{one}', type(one))# 批量插入文档
many_users = [{'name':'tom', 'age':23, 'email':'tom@qq.com'},{'name':'tina', 'age':28, 'email':'tina@qq.com'},{'name':'jay', 'age':32, 'email':'jay@qq.com'}]insert_many_result = collection.insert_many(many_users)
print('insert_many_ids', insert_many_result.inserted_ids)# 查询多个文档
all_users = collection.find()
for user in all_users:print(user)

执行结果
在这里插入图片描述

更新文档

collection.update_one({'name':'alice'}, {'$set':{'name':'alice', 'age':29}})

在这里插入图片描述

更新多条文档

# 更新多条文档
collection.update_many({'age':{'$lt': 30}},{'$set':{'status':'young'}}
)

执行结果见下表,已经给30岁以下的打上了标签在这里插入图片描述

删除文档

删除一条

collection.delete_one({'name':'tom'}
)

在这里插入图片描述
在这里插入图片描述

删除多条(条件删除)

collection.delete_many({'age':{'$gte':23, '$lt':29}}
)

在这里插入图片描述
在这里插入图片描述

删除所有

# 删除所有
collection.delete_many({})

在这里插入图片描述
执行结果如下
在这里插入图片描述

http://www.dtcms.com/a/269153.html

相关文章:

  • 指尖上的魔法:优雅高效的Linux命令手册
  • GitHub 趋势日报 (2025年07月06日)
  • PyTorch 详细安装教程及核心API使用指南
  • Chatbox➕知识库➕Mcp = 机器学习私人语音助手
  • 分层Agent
  • turborepo 如何解决git管理包过大的问题
  • 二、Docker安装部署教程
  • 20250707-4-Kubernetes 集群部署、配置和验证-kubeconfig_笔记
  • 人工智能赋能极端气候事件管理:重构风险预警与应急响应体系
  • 汽车功能安全系统阶段开发【技术安全需求TSR】4
  • 多维度数据资产测绘技术在安全管控平台中的应用实践
  • RKAndroid11-系统设置新增开关选项
  • 1. http 有哪些版本,你是用的哪个版本,怎么查看
  • 构建分布式高防架构实现业务零中断
  • 2025最新如何解决VSCode远程连接开发机失败/解决方案大全
  • 提示工程(Prompt Engineering)研究进展
  • Spring Data JPA基本方法调用规律
  • web渗透之指纹识别1
  • Shader面试题100道之(1-20)
  • PX4无人机上的返航操作和参数解读
  • 华为OD机试 2025B卷 - 最长的指定瑕疵度的元音子串 (C++PythonJAVAJSC语言)
  • DCN2:大规模推荐系统中的碰撞权重与显式交叉层协同优化
  • C++ tcp客户端处理重连问题
  • 3S技术+ArcGIS/ENVI全流程实战:水文、气象、灾害、生态、环境及卫生等领域应用
  • 前端工程化速通——①ES6
  • OSPF路由过滤实验案例
  • severb
  • 大模型通用架构图
  • es性能优化
  • 国产ARM+FPGA工业开发平台——GM-3568JHF