我在MongoDB上做开发。出于完全无害的目的,我有时想要删除数据库中的所有内容——也就是说,删除每一个集合,以及周围可能存在的任何其他内容,然后从头开始。是否有一行代码可以让我这样做?同时提供MongoDB控制台方法和MongoDB Ruby驱动程序方法的额外好处。
当前回答
如果你需要立即删除所有数据库:(立即删除所有数据库)
mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
其他回答
在MongoDB 3.2及更新版本中,Mongo shell中的Mongo().getDBNames()将在服务器中输出一个数据库名称列表:
> Mongo().getDBNames()
[ "local", "test", "test2", "test3" ]
> show dbs
local 0.000GB
test 0.000GB
test2 0.000GB
test3 0.000GB
遍历数组的forEach()循环然后可以调用dropDatabase()来删除所有列出的数据库。您还可以选择跳过不想删除的一些重要数据库。例如:
Mongo().getDBNames().forEach(function(x) {
// Loop through all database names
if (['admin', 'config', 'local'].indexOf(x) < 0) {
// Drop if database is not admin, config, or local
Mongo().getDB(x).dropDatabase();
}
})
示例运行:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB
test2 0.000GB
test3 0.000GB
> Mongo().getDBNames().forEach(function(x) {
... if (['admin', 'config', 'local'].indexOf(x) < 0) {
... Mongo().getDB(x).dropDatabase();
... }
... })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
对于Meteor开发者。
在localhost:3000中运行应用程序时打开第二个终端窗口。 在项目的文件夹中运行,meteor mongo。 coolName = new Mongo.Collection('yourCollectionName'); 然后输入db.yourCollectionName.drop(); 您将自动在本地服务器中看到更改。
为了其他人。
db.yourCollectionName.drop ();
删除数据库最简单的方法是写博客:
> use blog
switched to db blog
> db.dropDatabase();
{ "dropped" : "blog", "ok" : 1 }
在蒙戈壳里:
use [database];
db.dropDatabase();
并删除用户:
db.dropAllUsers();
如果你只想删除一个数据库和它的子集合,使用这个:
使用<数据库名称>; db.dropDatabase ();
如果你想删除mongo中的所有数据库,请使用以下命令:
db.adminCommand("listDatabases").databases.forEach(function(d)
{
if(d.name!="admin" && d.name!="local" && d.name!="config")
{
db.getSiblingDB(d.name).dropDatabase();
}
}
);
推荐文章
- js的Mongoose.js字符串到ObjectId函数
- mongodb中使用ISODate的日期查询似乎无法正常工作
- 如何更新文档数组中的对象(嵌套更新)
- 在猫鼬模式中添加created_at和updated_at字段
- 如何更新mongodb中的多个数组元素
- MongoDB和Mongoose的区别
- MongoDB在v4之前不兼容ACID意味着什么?
- 显示所有集合中的所有内容
- MongoDB:更新一个字段上的每个文档
- 我如何在MongoDB中部分更新一个对象,以便新对象将覆盖/合并现有的一个
- MongoDB的命名约定是什么?
- MongoDB在尝试插入整数时插入浮点数
- 通过将useNewUrlParser设置为true来避免“当前URL字符串解析器已弃用”警告
- 如何查询嵌套对象?
- NoSQL (MongoDB) vs Lucene(或Solr)作为您的数据库