当前位置: 首页 > 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.lryc.cn/news/582389.html

相关文章:

  • 基于Java+SpringBoot的在线小说阅读平台
  • 网络安全之注入攻击:原理、危害与防御之道
  • 【C语言】const、volatile、restrict、static四大关键字学习笔记
  • javaScirpt学习第八章-第一部分
  • RoboRefer:面向机器人视觉-语言模型推理的空间参考
  • 针对Exhcnage Server的攻击防范措施
  • Qt中的QProcess类
  • 内网渗透——红日靶场五
  • 【PyTorch】PyTorch中torch.nn模块的循环层
  • L0:让大模型成为通用智能体的强化学习新范式
  • Eslint基础使用
  • 从问题出发看Spring的对象创建与管理
  • 安装goland
  • 设计模式—专栏简介
  • Day08-Flask 或 Django 简介:构建 Web 应用程序
  • linux操作系统---MySQL Galera Cluster部署
  • 7.7晚自习作业
  • 【Behavior Tree】-- 行为树AI逻辑实现- Unity 游戏引擎实现
  • Kafka生产者的初始化
  • 【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
  • 20250707-4-Kubernetes 集群部署、配置和验证-kubeconfig_笔记
  • Maven依赖与JRebel热部署一站式解决方案
  • Java 命令行参数详解:系统属性、JVM 选项与应用配置
  • 【牛客算法】游游的整数切割
  • c语言中的函数VII
  • 回溯题解——子集【LeetCode】输入的视角(选或不选)
  • 机器学习知识
  • 独立开发A/B测试实用教程
  • Docker 稳定运行与存储优化全攻略(含可视化指南)
  • LeetCode 151. 反转字符串中的单词