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


当前回答

use <dbname>
db.dropAllUsers()
db.dropAllRoles()
db.dropDatabase()

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

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

其他回答

删除所有db使用:

for i in $(mongo --quiet --host $HOSTNAME --eval "db.getMongo().getDBNames()" | tr "," " ");

do mongo $i --host $HOSTNAME --eval "db.dropDatabase()";

done 

Use

[databaseName]
db.Drop+databaseName();

drop collection 

use databaseName 
db.collectionName.drop();

对于Meteor开发者。

在localhost:3000中运行应用程序时打开第二个终端窗口。 在项目的文件夹中运行,meteor mongo。 coolName = new Mongo.Collection('yourCollectionName'); 然后输入db.yourCollectionName.drop(); 您将自动在本地服务器中看到更改。

为了其他人。

db.yourCollectionName.drop ();

同样,在命令行中:

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

我更喜欢

db.your_collection.remove({})

over

db.your_collection.drop()

如果你的收藏是特别的收藏 例如,一个有上限的集合或一个字段被标记为唯一的集合,删除将清除集合本身,当再次创建集合时,它将是一个普通的集合。您必须重新定义属性。 因此,使用remove()在不删除集合和影响集合行为的情况下清除文档。