delete
¶该delete
命令从集合中删除文档。一个delete
命令可以包含多个删除规范。该命令无法对有上限的集合进行操作。MongoDB驱动程序提供的删除方法在内部使用此命令。
该delete
命令具有以下语法:
该命令包含以下字段:
领域 | 类型 | 描述 |
---|---|---|
delete |
串 | 目标集合的名称。 |
deletes |
数组 | 要在命名集合中执行的一个或多个delete语句的数组。 |
ordered |
布尔值 | 可选的。如果为true ,则当delete语句失败时,不执行其余的delete语句就返回。如果为false ,则当delete语句失败时,请继续其余的delete语句(如果有)。默认为true 。 |
writeConcern |
文献 | 可选的。表示命令写关注点
的文档 如果在事务中运行,则不要为操作明确设置写关注点。要对事务使用写关注,请参见 事务和写关注。 |
deletes
数组的每个元素包含以下字段:
领域 | 类型 | 描述 |
---|---|---|
q |
文献 | 与要删除的文档匹配的查询。 |
limit |
整数 | 要删除的匹配文档数。指定a 0 删除所有匹配的文档或1 删除单个文档。 |
collation |
文献 | 可选的。 指定 用于操作的排序规则。 归类允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。 排序规则选项具有以下语法: 指定排序规则时,该 如果未指定排序规则,但是集合具有默认排序规则(请参阅参考资料 如果没有为集合或操作指定排序规则,则MongoDB使用先前版本中使用的简单二进制比较进行字符串比较。 您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果对排序执行查找,则不能对查找使用一种排序规则,而对排序使用另一种排序规则。 3.4版的新功能。 |
返回值: | 包含操作状态的文档。有关详细信息,请参见输出。 |
---|
数组中所有查询的总大小(即q
字段值)
deletes
必须小于或等于。maximum
BSON document size
deletes
数组中删除文档的总数必须小于或等于。maximum bulk size
delete可以在多文档交易中使用。
如果在事务中运行,则不要为操作明确设置写关注点。要对事务使用写关注,请参见 事务和写关注。
重要
在大多数情况下,与单文档写入相比,多文档事务产生的性能成本更高,并且多文档事务的可用性不应代替有效的架构设计。在许多情况下, 非规范化数据模型(嵌入式文档和数组)对于您的数据和用例将继续是最佳的。也就是说,在许多情况下,对数据进行适当的建模将最大程度地减少对多文档交易的需求。
有关其他事务使用方面的注意事项(例如运行时限制和oplog大小限制),另请参见 生产注意事项。
返回的文档包含以下字段的子集:
delete.
ok
¶命令的状态。
delete.
n
¶删除的文件数。
delete.
writeErrors
¶文档数组,其中包含有关删除操作期间遇到的任何错误的信息。该
writeErrors
数组包含每个错误的删除语句的错误文档。
每个错误文档均包含以下信息:
delete.writeErrors.
index
¶一个整数,用于标识deletes
数组中的delete语句,该语句
使用从零开始的索引。
delete.writeErrors.
code
¶标识错误的整数值。
delete.writeErrors.
errmsg
¶错误的描述。
delete.
writeConcernError
¶描述与写关注有关的错误的文档,其中包含以下字段:
delete.writeConcernError.
code
¶标识写关注错误原因的整数值。
delete.writeConcernError.
errmsg
¶写关注错误原因的描述。
以下是为成功delete
命令返回的示例文档
:
以下是为delete
遇到错误的命令返回的示例文档: