我看到在Mongodb中有两种删除集合的方式。我只想要彻底删除它。
我应该使用哪种方式:
db.collection.drop()
或者
db.collection.remove()
我看到在Mongodb中有两种删除集合的方式。我只想要彻底删除它。
我应该使用哪种方式:
db.collection.drop()
或者
db.collection.remove()
当我们将文档存储在集合中后,有两种方式可以将其全部删除。选择哪种方式完全取决于您的需求。
1. 使用 drop() 方法:
通过在集合上调用drop()
方法,将删除其中所有文档,删除所有索引以及最终删除集合本身。
2.使用 remove() 方法: remove()方法有两个重载版本,一个是我们将传递条件以删除与我们传递的条件匹配的所有文档,第二个是默认情况下(2.6之前)不传递任何条件或传递一个空文档(2.6或更高版本),它将从集合中删除所有文档。在这里,我们更感兴趣的是第二个版本,当我们的意图是清除集合中的所有文档时。
备注: 为了从集合中删除所有文档,使用drop()
方法删除整个集合(包括索引),然后重新创建集合并重建索引可能更加高效。
remove()
从集合中删除文档,但不会删除集合(或相关索引)。remove()
可以接受参数来指定删除条件。而drop()
会删除集合和相关的索引:它从数据库中删除一个集合或视图。该方法还会删除与删除的集合相关联的任何索引。此方法提供了drop命令的包装器。详细信息请参考:https://docs.mongodb.com/manual/reference/method/db.collection.remove/ 和 https://docs.mongodb.com/manual/reference/method/db.collection.drop/。这有点像关系型SQL中DELETE
(或者也许是TRUNCATE
)和DROP TABLE/VIEW
之间的区别。
drop()
会完全删除集合;而remove({})
则是删除匹配的文档,同时保留(并更新)索引。如果你的目的是删除一个集合,你应该使用drop()
。 - StennieDeprecationWarning: remove is deprecated. Use delete_one or delete_many instead.
- themefield