我在MongoDB上做开发。出于完全无害的目的,我有时想要删除数据库中的所有内容——也就是说,删除每一个集合,以及周围可能存在的任何其他内容,然后从头开始。是否有一行代码可以让我这样做?同时提供MongoDB控制台方法和MongoDB Ruby驱动程序方法的额外好处。


当前回答

当我需要重置所有集合但又不想失去任何数据库用户时,我遇到了同样的问题。如果您想保存数据库的用户配置,请使用以下代码行:

use <whichever database>
db.getCollectionNames().forEach(function(c) { if (c.indexOf("system.") == -1) db[c].drop(); })

这段代码将遍历一个数据库中的所有集合名称,并删除不以“system.”开头的集合名称。

其他回答

当我需要重置所有集合但又不想失去任何数据库用户时,我遇到了同样的问题。如果您想保存数据库的用户配置,请使用以下代码行:

use <whichever database>
db.getCollectionNames().forEach(function(c) { if (c.indexOf("system.") == -1) db[c].drop(); })

这段代码将遍历一个数据库中的所有集合名称,并删除不以“system.”开头的集合名称。

Use

[databaseName]
db.Drop+databaseName();

drop collection 

use databaseName 
db.collectionName.drop();
use <dbname>
db.dropAllUsers()
db.dropAllRoles()
db.dropDatabase()

MongoDB db.dropDatabase()文档解释了2.6中引入的修改:

在2.6版更改:此命令不会删除与当前数据库关联的用户。

同样,在命令行中:

mongo DATABASE_NAME --eval "db.dropDatabase();"

在蒙戈壳里:

use [database];
db.dropDatabase();

并删除用户:

db.dropAllUsers();