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


当前回答

通过编译@Robse和@DanH的答案,我得到了以下完全让我满意的解决方案:

db.getCollectionNames().forEach( function(collection_name) { 
  if (collection_name.indexOf("system.") == -1) 
       db[collection_name].drop();
  else  
       db[collection_name].remove({});
});

它通过删除用户集合和清空系统集合来清理数据库。

其他回答

在蒙戈壳里:

use [database];
db.dropDatabase();

并删除用户:

db.dropAllUsers();

删除所有db使用:

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

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

done 

这里有一些有用的删除操作mongodb使用mongo shell

删除集合中的特定文档。删除({name:"stack"})

删除集合中的所有文档:db.mycollection.remove()

删除任何特定集合:db.mycollection.drop()

删除数据库。 首先使用mydb命令进入该数据库,然后

db.dropDatabase()

列出所有可用的dbs show dbs 选择必要的数据库 使用 删除数据库 db.dropDatabase () //很少额外的命令 列出数据库中所有可用的集合 显示集合 删除一个规范集合 db.collection.drop ()

希望这能有所帮助

删除数据库最简单的方法是写博客:

> use blog
switched to db blog
> db.dropDatabase();
{ "dropped" : "blog", "ok" : 1 }