如何从命令行删除MongoDB数据库?

How do I drop a MongoDB database from the command line?

从我的bash提示符中最简单的方法是什么?


像这样:

1
mongo <dbname> --eval"db.dropDatabase()"

有关从命令行编写shell脚本的更多信息,请访问:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting


最好的方法是从mongodb控制台:

1
2
> use mydb;
> db.dropDatabase();

或者,您可以停止mongod并从数据目录中删除数据文件,然后重新启动。

提示:您还可以将数据文件移动到子文件夹,如果您确定不再需要它们,则将其删除。


您不需要heredocs或eval,mongo本身可以充当解释器。

1
2
3
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();

使文件可执行并运行它。


我发现这很容易记住:

1
2
3
4
5
6
7
8
9
mongo //to start the mongodb shell

show dbs //to list existing databases

use <dbname> //the <dbname> is the database you'd like to drop

db //should show <dbname> just to be sure I'm working with the right database

db.dropDatabase() //will delete the database & return {"dropped" :"<dbname>","ok" : 1 }

启动MongoDB

数据库删除命令是:

1.首先选择要删除的数据库

1
use < database name >

然后用这个..

1
db.dropDatabase()

你也可以使用"heredoc":

1
2
3
mongo localhost/db <<EOF
db.dropDatabase()
EOF

输出结果如下:

1
2
3
4
5
6
7
mongo localhost/db <<EOF
db.dropDatabase()
EOF
MongoDB shell version: 2.2.2
connecting to: localhost/db
{"dropped" :"db","ok" : 1 }    
bye

我喜欢使用heredocs来做这样的事情,以防你需要更复杂的命令序列。


另一种方式:

1
echo"db.dropDatabase()" | mongo <database name>


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

要删除集合中的特定文档:db.mycollection.remove( {name:"stack"} )

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

删除集合:db.mycollection.drop()

删除数据库:
首先通过use mydb命令转到该数据库然后

1
db.dropDatabase()

直接从命令提示符或blash:mongo mydb --eval"db.dropDatabase()


在终端执行:

1
2
3
4
5
6
7
mongo // To go to shell

show databases // To show all existing databases.

use <DATA_BASE> // To switch to the wanted database.

db.dropDatabase() // To remove the current database.


打开另一个终端窗口并执行以下命令,

1
2
3
mongodb
use mydb
db.dropDatabase()

该操作的输出应如下所示

1
2
3
4
5
6
7
8
9
10
MAC:FOLDER USER$ mongodb
> show databases
local      0.78125GB
mydb       0.23012GB
test       0.23012GB
> use mydb
switched to db mydb
>db.dropDatabase()
{"dropped" :"mydb","ok" : 1 }
>

请注意mydb仍在使用中,因此此时插入任何输入将再次初始化数据库。


使用Javascript,您可以轻松创建drop_bad.js脚本来删除数据库:

创建drop_bad.js:

1
2
use bad;
db.dropDatabase();

比使用mongo shell在终端中运行1命令来执行脚本:

1
mongo < drop_bad.js


虽然有几种方法,但最好的方法(最有效和最简单)是使用db.dropDatabase()


在命令提示符中,首先使用以下命令连接到mongodb:

1
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]

您将使用访问db。

运行以下命令以删除整个数据库:

1
db.dropDatabase()


one liner remote从mongo数据库中删除所有集合

注意必须使用--host,(-h是mongo命令的帮助),而-d不是选项,请在密码后选择db和命令。

1
mongo --host <mongo_host>:<mongo_port> -u <db_user> -p <db_pass> <your_db> --eval"db.dropDatabase()"

登录到您的mongoDB命令行:
然后键入以下命令。
使用"YOUR_DATABASE_NAME";
db.dropDatabase();


使用mongo shell中的以下命令来删除db

use ;
db.dropDatabase();