参考 > 参考 > mongo Shell方法 > 收集方法 > db.collection.remove()
db.collection.
remove
()¶mongo
壳法
此页面记录了mongo
shell方法,并且
没有引用MongoDB Node.js驱动程序(或任何其他驱动程序)方法。对于相应的MongoDB驱动程序API,请改为参考您特定的
MongoDB驱动程序文档。
从集合中删除文档。
该db.collection.remove()
方法可以具有两种语法之一。该remove()
方法可以获取查询文档和可选的justOne
布尔值:
或者该方法可以获取查询文档和可选的删除选项文档:
参数 | 类型 | 描述 |
---|---|---|
query |
文献 | 使用查询运算符指定删除条件。要删除集合中的所有文档,请传递一个空文档({} )。 |
justOne |
布尔值 | 可选的。要将删除限制为仅一个文档,请设置为true 。忽略使用默认值,false 并删除所有符合删除条件的文档。 |
writeConcern |
文献 | 可选的。表达书面关切的文件。省略使用默认的写关注。请参阅写关注点。 如果在事务中运行,则不要为操作明确设置写关注点。要对事务使用写关注,请参见 事务和写关注。 |
collation |
文献 | 可选的。 指定 用于操作的排序规则。 归类允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。 排序规则选项具有以下语法: 指定排序规则时,该 如果未指定排序规则,但是集合具有默认排序规则(请参阅参考资料 如果没有为集合或操作指定排序规则,则MongoDB使用先前版本中使用的简单二进制比较进行字符串比较。 您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果对排序执行查找,则不能对查找使用一种排序规则,而对排序使用另一种排序规则。 3.4版的新功能。 |
该remove()
返回包含操作的状态的对象。
返回值: | 一写结果包含操作的状态对象。 |
---|
默认情况下,remove()
删除所有与query
表达式匹配的文档。指定justOne
用于将操作限制为删除单个文档的选项。要删除按指定顺序排序的单个文档,请使用findAndModify()方法。
当删除多个文档时,删除操作可能会与其他对集合的读取和/或写入操作交错。
remove()
指定justOne
选项的分片集合的所有操作都必须包括分片
键 或_id
查询规范中的字段。
在不包含分片键或字段的分片集合中
remove()
指定的操作将返回错误。justOne
_id
db.collection.remove()
可以在多文档交易中使用。
如果在事务中运行,则不要为操作明确设置写关注点。要对事务使用写关注,请参见 事务和写关注。
重要
在大多数情况下,与单文档写入相比,多文档事务产生的性能成本更高,并且多文档事务的可用性不应代替有效的架构设计。在许多情况下, 非规范化数据模型(嵌入式文档和数组)对于您的数据和用例将继续是最佳的。也就是说,在许多情况下,对数据进行适当的建模将最大程度地减少对多文档交易的需求。
有关其他事务使用方面的注意事项(例如运行时限制和oplog大小限制),另请参见 生产注意事项。
以下是该remove()
方法的示例。
要删除集合中的所有文档,请remove
使用空的查询文档调用该方法{}
。以下操作将从bios集合中删除所有文档:
此操作不等同于该
drop()
方法。
要从集合中删除所有文档,使用该drop()
方法删除整个集合(包括索引),然后重新创建集合并重建索引,可能会更有效。
以下操作副本集删除所有从收集的文件products
,其中qty
大于20
并指定写入关注的有5000毫秒,使得写传播后,该方法返回一个多数投票副本集成员或方法的5秒后超时。"w:
majority"
wtimeout
如果该remove()
方法遇到写关注错误,则结果包括以下
WriteResult.writeConcernError
字段: