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

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

495968 次浏览

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

> use mydb;> db.dropDatabase();

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

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

像这样:

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

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

你也可以使用“heldoc”:

mongo localhost/db <<EOFdb.dropDatabase()EOF

输出结果如下:

mongo localhost/db <<EOFdb.dropDatabase()EOFMongoDB shell version: 2.2.2connecting to: localhost/db{ "dropped" : "db", "ok" : 1 }bye

我喜欢使用heldocs来处理这样的事情,以防你想要更复杂的命令序列。

其他方式:

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

我发现这很容易记住:

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 }

在终端中执行:

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.

这里有一些使用完整删除操作MongoDB使用mongoshell

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

收藏中的删除所有文件db.mycollection.remove()

删除收藏db.mycollection.drop()

删除数据库:首先通过use mydb命令访问该数据库,然后

db.dropDatabase()

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

你不需要这里的文档或评估mongo本身可以充当解释器。

#!/usr/bin/env mongovar db = new Mongo().getDB("someDatabase");db.dropDatabase();

使文件可执行并运行它。

启动MongoDB

数据库删除命令是:

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

use < database name >

2.然后用这个…

db.dropDatabase()

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

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

您将使用<dbname>访问db。

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

db.dropDatabase()

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

创建drop_bad.js

use bad;db.dropDatabase();

然后在终端中运行1个命令以使用mongoshell执行脚本:

mongo < drop_bad.js

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

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

mongodbuse mydbdb.dropDatabase()

该操作的输出如下所示

MAC:FOLDER USER$ mongodb> show databaseslocal      0.78125GBmydb       0.23012GBtest       0.23012GB> use mydbswitched to db mydb>db.dropDatabase(){ "dropped" : "mydb", "ok" : 1 }>

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

使用以下命令从mongoshell删除数据库

use <database name>;db.dropDatabase();

登录到您的mongoDB命令行:然后键入以下命令。使用“YOUR_DATABASE_NAME”;db.drop数据库();

一个班轮远程删除数据库中mongo所有集合

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

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

db将显示当前数据库名称type:db.drop数据库();

1-使用使用关键字选择要删除的数据库。

2-然后键入db.dropDatabase();

使用python删除MongoDB数据库:

import argparse
import pymongo

if __name__ == "__main__":"""Drop a Database."""
parser = argparse.ArgumentParser()parser.add_argument("--host", default='mongodb://localhost:27017',help="mongodb URI [default: %(default)s]")parser.add_argument("--database", default=None,help="database name: %(default)s]")
args = parser.parse_args()
client = pymongo.MongoClient(host=args.host)
if args.database in client.list_database_names():client.drop_database(args.database)print(f"Dropped: '{args.database}'")else:print(f"Database '{args.database}' does not exist")

打开终端并键入:

mongo

以下命令应显示列出的数据库:

show dbs
/* the <dbname> is the database you'd like to drop */use <dbname>
/* the below command will delete the database */db.dropDatabase()

下面应该是终端中的输出:

{"dropped": "<dbname>","ok": 1}

令人惊讶的是,我们还没有看到这种变化出现。这最大限度地减少了命令行上的额外参数,并显式显示数据库被切换到FOO然后被删除:

$ mongo --host "mongodb://machine:port" --eval 'db.getSiblingDB("FOO").dropDatabase();'

为了确保您删除了正确的数据库,请使用

mongo <connection properties> --eval "db.getSiblingDB('dbname').dropDatabase()"

请参阅尝试保存到MongoDB时身份验证失败以了解关注点。

您可以先删除要删除的切换到您的数据库。然后您可以使用命令DropDatabase()方法名删除相同的内容。

代码:

>use dbName

>db.dropdataBase()

结果将是:

{ "dropped" : "dbName", "ok" : 1 }

如果要删除数据库中的特定集合,请切换到数据库并输入以下命令。

代码:

>use dbName

db.collection.drop()

结果将是:

true

如果您想更好地了解MongoDB shell命令,请参阅最好总是跟着留档走。

链接到留档:https://www.mongodb.com/docs/manual/reference/method/#std-label-js-administrative-methods