Mongodb中Drop和Remove之间有什么区别?

时间:2017-03-10 19:43:16

标签: mongodb

我看到有两种方法可以删除Mongodb中的集合。我只是想删除它。

我应该使用:

db.collection.drop()

或者

db.collection.remove()

2 个答案:

答案 0 :(得分:6)

一旦我们将文档存储在我们的集合中,我们就可以通过两种方式从中删除所有文档。现在选择一个完全取决于您的要求。

<强> 1。 Using drop(): 通过在集合上调用drop(),它将从中删除所有文档,它将删除其上的所有索引,最后它将删除集合本身。

<强> 2。Using remove():  remove有两个重载版本,其中一个我们将通过条件删除所有符合我们传递标准的文档,第二个是默认值,我们不会传递任何条件(2.6之前)或传递空文档(版本) 2.6或更多)它将删除集合中的所有文档。在这里,当我们打算清除集合中的所有文档时,我们对第二版更感兴趣。

备注: 要从集合中删除所有文档,使用drop()方法删除整个集合(包括索引),然后重新创建可能更有效收集并重建索引。

答案 1 :(得分:2)

根据文档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之间的区别。