深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

2024-01-21

Python MongoDB 排序

对结果进行排序

使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。

示例

按名称按字母顺序对结果进行排序:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mydoc = mycol.find().sort("name")

for x in mydoc:
  print(x)

Python MongoDB 删除文档

删除文档

要删除一个文档,我们使用 delete_one() 方法。 delete_one() 方法的第一个参数是一个查询对象,用于定义要删除的文档。注意:如果查询找到多个文档,仅删除第一个出现的文档。

示例

删除地址为“Mountain 21”的文档:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": "Mountain 21" }

mycol.delete_one(myquery)

删除多个文档

要删除多个文档,使用 delete_many() 方法。 delete_many() 方法的第一个参数是一个查询对象,用于定义要删除的文档。

示例

删除所有地址以字母S开头的文档:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": {"$regex": "^S"} }

x = mycol.delete_many(myquery)

print(x.deleted_count, " documents deleted.")

删除集合中的所有文档

要删除集合中的所有文档,请将一个空的查询对象传递给 delete_many() 方法:

示例

删除“customers”集合中的所有文档:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

x = mycol.delete_many({})

print(x.deleted_count, " documents deleted.")

Python MongoDB 删除集合

删除集合

您可以使用 drop() 方法删除表,或者在 MongoDB 中称为集合。

示例

删除“customers”集合:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mycol.drop()

如果成功删除集合, drop() 方法将返回 true ,如果集合不存在,则返回 false

Python MongoDB 更新

更新集合

您可以使用 update_one() 方法更新记录,或者在 MongoDB 中称为文档。 update_one() 方法的第一个参数是一个查询对象,用于定义要更新的文档。注意:如果查询找到多个记录,仅更新第一个出现的记录。第二个参数是一个对象,定义文档的新值。

示例

将地址从“Valley 345”更改为“Canyon 123”:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }

mycol.update_one(myquery, newvalues)

# 更新后打印 "customers":
for x in mycol.find():
  print(x)

更新多个

要更新满足查询条件的所有文档,请使用 update_many() 方法。

示例

更新所有地址以字母“S”开头的文档:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }

x = mycol.update_many(myquery, newvalues)

print(x.modified_count, "documents updated.")

Python MongoDB 限制结果

为了在 MongoDB 中限制结果,我们使用 limit() 方法。 limit() 方法接受一个参数,即定义要返回多少个文档的数字。

假设你有一个“customers”集合:

Customers
{'_id': 1, 'name': 'John', 'address': 'Highway 37'}
{'_id': 2, 'name': 'Peter', 'address': 'Lowstreet 27'}
{'_id': 3, 'name': 'Amy', 'address': 'Apple st 652'}
{'_id': 4, 'name': 'Hannah', 'address': 'Mountain 21'}
{'_id': 5, 'name': 'Michael', 'address': 'Valley 345'}
{'_id': 6, 'name': 'Sandy', 'address': 'Ocean blvd 2'}
{'_id': 7, 'name': 'Betty', 'address': 'Green Grass 1'}
{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': 9, 'name': 'Susan', 'address': 'One way 98'}
{'_id': 10, 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': 11, 'name': 'Ben', 'address': 'Park Lane 38'}
{'_id': 12, 'name': 'William', 'address': 'Central st 954'}
{'_id': 13, 'name': 'Chuck', 'address': 'Main Road 989'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}

示例

将结果限制为只返回5个文档:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

myresult = mycol.find().limit(5)

# 打印结果:
for x in myresult:
  print(x)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索: Let us Coding ,关注后即可获取

最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析 的相关文章

  • 从mongoDB和Nodejs获取数据:toArray不是函数错误[重复]

    这个问题在这里已经有答案了 我有以下代码 var user User find limit 1 skip 10 toArray 但我收到错误消息toArray不是一个函数 但如果我执行以下操作 我将获得所有记录 User find func
  • 如何查看MongoDB当前配置

    我找到了不同的文档配置选项 http docs mongodb org manual administration configuration 但是如何检查实时系统上正在使用哪些选项 有没有办法查看设置了哪些选项 或者至少正在使用哪个配置文
  • 如何使用 java 执行此 MongoDB 查询?

    我必须写一个简单的MongoDB查询使用java但我做不到 mongo 查询如下所示 db yourCollection find where this startDate lt this endDate 我必须使用以下命令编写上述查询Qu
  • 如何在docker compose中运行mongodb副本集

    我尝试在我的 Mac 中使用 mongodb community 在本地运行 mongodb 副本集MongoDB 文档 https docs mongodb com manual tutorial convert standalone t
  • Meteor 独特客户端集合的发布/订阅策略

    使用 Meteor 我想知道如何最好地处理共享相同服务器端数据库集合的不同客户端集合 考虑以下示例 我有一个User集合 在我的客户端我有一个好友用户列表我有一个搜索功能 可以对整个用户数据库执行查询 返回一个与查询匹配的用户名列表 在发布
  • Mongodb 聚合使用 $group 两次

    我在 mongo 中有一堆文档 其结构如下 id number 2 colour id name Green hex 00ff00 position id name Defence type position ageGroup id nam
  • 如何在 mongodb 查询中过滤数组

    在 mongodb 中 我有一个包含单个文档的集合 如下所示 id ObjectId 5552b7fd9e8c7572e36e39df StackSummaries StackId arn aws cloudformation ap sou
  • 我可以通过mongo shell重启mongodb服务器吗?

    我可以通过 mongo CLI 客户端重新启动 MongoDB 服务器吗 您无法从客户端停止和启动 重新启动 它 正如 i kimiko 已经提到的 你可以在客户端上关闭它db shutdownServer 通过 mongo shell数据
  • MongoDB - 编辑器变量 - MongoDB shell - Windows 7

    EDITOR 变量功能真的可以在 Windows 7 上使用吗 我正在读一篇文章 说一旦我们设置了 EDITOR 变量在 mongorc js 中 我们只需在 shell 中输入 编辑变量名 and var name将被加载到编辑器中 在我
  • Mongo JSON 文档 -> JSON -> BSON

    我正在使用 Node js 构建一个使用 mongodb 的 Web 套接字服务器 我使用 node mongodb native 作为访问 mongodb 的库 当我对数据库中的对象调用 console log sys inspect i
  • 如何减少嵌套文档聚合管道中的展开阶段?

    我是 mongodb 新手 正在尝试使用嵌套文档 我有一个查询如下 db EndpointData aggregate group id EndpointId RequestCount sum 1 FirstActivity min Dat
  • 聚合和展开数组,但保留顶级键

    假设我的收藏中有以下文档Classes收藏家 id ObjectId 5df58d45244a850d54b922c8 mentors numOfMentors NumberInt 1 mentorList ObjectId 5c9ba63
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒
  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • 如何使用 pymongo 在 mongodb 中查询日期?

    我试图在 mongodb 中执行查询日期 但结果始终为空 我的查询如下 in the begin code def init self self now datetime now self db conexaoMongo self hora
  • 如何验证 ObjectID

    使用 Joi 模式验证 是否可以针对 MongoDB ObjectID 进行验证 像这样的事情可能很棒 id Joi ObjectId required error errorParser 我发现如果我这样做 Joi object id J
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本

随机推荐

  • 扬帆证券:A股高股息资产“画像”:连续数年跑赢大盘

    近期A股分红 大方 股息率较高的板块再次引起重视 走势明显强于同期大盘 并继续遭到商场追捧 有专家在承受证券时报记者采访时以为 近年A股商场高股息财物受捧背面 有多种要素在发挥作用 包括高股息财物本身具有的出资优势 宏观经济布景 出资者心态
  • 扬帆证券:股市新手必看!股票可以当日买当日卖吗?

    在股票商场中 投资者常常对买卖股票的规则感到困惑 其间一个常见的问题便是 股票能够当日买当日卖吗 关于这些问题 本文将凭借有关常识来展开讨论 为大家提供一个参阅思路 股票当日买当日卖 在股票买卖准则中有专门的名词描述这种情况 即 T 0 买
  • 矩阵基本操作

    问题描述 已知一个n n的矩阵 方阵n lt 100 把矩阵主副对角线上的元素值加上x 然后输出这个新矩阵 输入格式 一行两个变量 用空格隔开 代表n和x 接下来的n行每行n列 表示矩阵的数值 用空格隔开 输出格式 输出新矩阵 每个数字5个
  • 扬帆证券投资者必知:股票配股与增发的区别你清楚吗?

    配股和增发都是股票再融资的方式 不过二者有一定的区别 1 发行对象不同 配股是向原股东发售一定量股票 一般会以低于市价的价格发售 增发是向全体社会公众发行股票 即新老股东都能获得 2 发行前是否需要公告价格 配股会事先公告配股价 配股的定价
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • 扬帆证券:大资金抄底?该指数基金疯狂“吸金”,成交最高放量8倍!

    宽基ETF昨日尾盘再放量 疑似资金借道抄底 昨日午后 大金融板块突然敏捷拉升 带动大盘指数终究翻红收盘 资金跑步进场 多只沪深300ETF成交额放量 其间华泰柏瑞沪深300ETF现天量成交 成交额近60亿元 较上一日近翻倍 易方达沪深300
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|使用Python读写yaml文件,你会了吗?

    简介 YAML YAML Ain t Markup Language 是一种可读的数据序列化格式 它常用于配置文件和数据交换 Python 提供了许多库来处理 YAML 文件 在本文中 我们将探讨如何使用 PyYAML 库来读取和写入 YA
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 扬帆证券:股票手续费用有哪些?怎么降低股票手续费用?

    投资者在买卖个股时 会发生必定的佣钱费用 过户费用 印花税 详细如下 1 佣钱费用 佣钱费用是双向收取的 即投资者在买入时 收取一次 在卖出时 再收取一次 其费率最高不得超过千分之三 每笔不足五元依照五元的规范收取 比方 投资者在股价为20
  • 《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解

    测试 Spring 提供了一组测试工具 可以轻松地测试 Spring 应用程序的各个组件 包括控制器 服务 存储库和其他组件 它具有丰富的测试注释 实用程序类和其他功能 以帮助进行单元测试 集成测试等 JPA 测试 Spring JPA J
  • 深入了解鸿鹄电子招投标系统:Java版企业电子招标采购系统的核心功能

    随着市场竞争的加剧和企业规模的扩大 招采管理逐渐成为企业核心竞争力的重要组成部分 为了提高招采工作的效率和质量 我们提出了一种基于电子化平台的解决方案 该方案旨在通过电子化招投标 使得招标采购的质量更高 速度更快 同时节约招标成本 提升企业
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 扬帆证券:突发利好!外资重大转变,A股收到多份喜报

    A股财报季 利好音讯密集传来 1月16日晚间 A股多家上市公司披露了成绩预告 其间成绩预增 扭亏等利好公告数量占比超80 其间 普瑞眼科公告 估计2023年净赢利同比添加高达1163 98 1285 51 别的 多家上市公司公告称 估计20
  • 编程和数值计算平台:MATLAB R2023a(Win/Mac)激活版

    MATLAB R2023a是一款强大的数值计算和科学编程软件 广泛应用于工程 科学和数学领域 win版 https soft macxf com soft 3541 html id MzE5MTM 3D mac版 https www mac
  • 扬帆证券:三只松鼠去年扣非净利预增超1.4倍

    在 高端性价比 战略驱动下 三只松鼠 300783 重拾增势 1月15日晚间 三只松鼠发布成绩预告 预计2023年度净赢利为2亿元至2 2亿元 同比增加54 97 至70 47 扣非后净赢利为1亿元至1 1亿元 同比增速达146 9 至17
  • 扬帆证券:十大券商看后市|A股拐点或即将到来

    最新经济数据发布和相关不确定性落地后 A股商场将作何表现呢 澎湃新闻搜集了10家券商的观点 大部分券商认为 尽管最近商场回调 但各项活跃要素持续堆集 现在商场估值已到前史极值区域 随着失望预期触底 拐点行将到来 A股商场或将冬尽春来 202
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

    Python MongoDB 排序 对结果进行排序 使用 sort 方法对结果进行升序或降序排序 sort 方法接受一个参数用于 字段名 一个参数用于 方向 升序是默认方向 示例 按名称按字母顺序对结果进行排序 import pymongo