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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 使用 sort() 方法对结果进行升序或降序排序。 sort() 方法接受一个参数用于“字段名”,一个参数用于“方向”(升序是默认方向)。

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,关注后即可获取

最新文章推送

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

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
8天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
6天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
48 5
|
20天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
24天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
33 7
|
25天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
6月前
|
NoSQL Shell MongoDB
python操作MongoDB部分
python操作MongoDB部分
41 0
|
NoSQL API MongoDB
Python使用PyMongo4.x操作MongoDB总结
PyMongo是一个Python编程语言中用于连接和操作MongoDB数据库的库。它提供了丰富的功能和API,使开发者能够在Python中轻松地进行MongoDB的数据交互和管理。
154 2
|
存储 JSON NoSQL
Python 操作mongodb库
MongoDB 是一个基于分布式文件存储的数据库。
233 0
Python 操作mongodb库
|
存储 NoSQL MongoDB
用Python操作MongoDB,看这一篇就够了
用Python操作MongoDB,看这一篇就够了
433 0
用Python操作MongoDB,看这一篇就够了
|
NoSQL 测试技术 数据库连接
使用Python操作MongoDB
使用Python操作MongoDB
使用Python操作MongoDB