对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Delete Documents

在本指南中,您可以学习如何使用Ruby驱动程序通过执行删除操作从MongoDB集合中删除文档。

删除操作可从 MongoDB 集合中删除一个或多个文档。 您可以使用delete_onedelete_many方法执行删除操作。

本指南中的示例使用Atlas示例数据集sample_restaurants数据库中的 restaurants集合。要从Ruby应用程序访问权限此集合,请创建一个连接到Atlas 集群的Mongo::Client对象,并将以下值分配给 databasecollection 变量:

database = client.use('sample_restaurants')
collection = database[:restaurants]

要学习如何创建免费的MongoDB Atlas 集群并加载示例数据集,请参阅MongoDB 入门指南

您可以使用以下方法在 MongoDB 中执行删除操作:

  • delete_one,这会删除与 Atlas Search条件匹配的 第一个文档

  • delete_many,这会删除与 Atlas Search条件匹配的 所有文档

每种删除方法都需要一个查询过滤参数,该参数指定搜索条件,以确定选择要删除的文档。如需学习;了解有关查询筛选器的更多信息,请参阅“指定查询”指南。

以下示例使用delete_one方法删除name字段值为"Happy Garden"的文档:

filter = { name: 'Happy Garden' }
result = collection.delete_one(filter)
puts "Deleted #{result.deleted_count} document(s)"
Deleted 1 document(s)

以下示例使用delete_many方法删除borough字段值为"Brooklyn"name字段值为"Starbucks"的所有文档:

filter = { name: 'Starbucks', borough: 'Brooklyn' }
result = collection.delete_many(filter)
puts "Deleted #{result.deleted_count} document(s)"
Deleted 3 document(s)

您可以将 Hash对象作为参数传递给 delete_onedelete_many 方法,以设立配置删除操作的选项。如果不指定任何选项,驱动程序将使用默认设置执行删除操作。

下表描述了可用于配置删除操作的选项:

选项
说明

collation

指定对结果进行排序时要使用的语言排序规则类型。 有关更多信息,请参阅 MongoDB Server 手册中的排序规则

session

指定用于操作的会话。要学习;了解有关会话的更多信息,请参阅MongoDB Server手册中的客户端会话和因果一致性保证。

hint

delete指定匹配文档时要使用的索引。有关更多信息,请参阅MongoDB Server手册的 参考页面中的提示选项。

let

提供参数名称和值的映射,以便为操作设立顶级变量。值必须是常量或不引用文档字段的闭合表达式。有关更多信息,请参阅MongoDB Server手册的 参考页面中的 let 选项。delete

以下代码指定 hint 选项来指示删除操作使用 "name_index"索引。然后,该示例使用 delete_many 方法删除restaurants集合中 name字段值包含字符串 "Red" 的所有文档。

filter = { name: /Red/ }
options = { hint: 'name_index' }
result = collection.delete_many(filter, options)
puts "Deleted #{result.deleted_count} document(s)"
Deleted 124 document(s)

提示

如果在上示例中使用 delete_one 方法而不是 delete_many 方法,则驱动程序仅删除与查询筛选条件匹配的第一个文档。

要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档: