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

如何从命令行删除MongoDB数据库?,mongodb,Mongodb,从我的bash提示符执行此操作的最简单方法是什么?执行此操作的最佳方法是从mongodb控制台: > use mydb; > db.dropDatabase(); 或者,您可以停止mongod并从数据目录中删除数据文件,然后重新启动 提示:您还可以将数据文件移动到子文件夹中,如果确定不再需要它们,则将其删除。如下所示: mongo <dbname> --eval "db.dropDatabase()" mongo--eval“db.dropDatabase()”

从我的bash提示符执行此操作的最简单方法是什么?

执行此操作的最佳方法是从mongodb控制台:

> use mydb; 
> db.dropDatabase();
或者,您可以停止
mongod
并从数据目录中删除数据文件,然后重新启动

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

如下所示:

mongo <dbname> --eval "db.dropDatabase()"
mongo--eval“db.dropDatabase()”
有关从命令行编写shell脚本的更多信息,请参见此处:

您也可以使用“herdoc”:

mongo localhost/db其他方式:

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

我发现这很容易记住:

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//启动mongodb shell
show dbs//列出现有数据库
使用//是要删除的数据库
db//应该显示,以确保我使用的是正确的数据库
db.dropDatabase()//将删除数据库并返回{“droped”:“”“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.
{
  "dropped": "<dbname>",
  "ok": 1
}
mongo//转到shell
show databases//显示所有现有数据库。
使用//切换到所需的数据库。
db.dropDatabase()//删除当前数据库。

以下是使用MongoShell对mongodb执行的一些使用完全删除操作

要删除集合中的特定文档,请执行以下操作:
db.mycollection.remove({name:“stack”})

要删除集合中的所有文档,请执行以下操作:
db.mycollection.remove()

删除集合
db.mycollection.drop()

要删除数据库,请执行以下操作: 首先通过
使用mydb
命令转到该数据库,然后

db.dropDatabase()

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

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

#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
使文件可执行并运行。

启动MongoDB

用于数据库删除的命令是:

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

use < database name >

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

mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
您将使用
访问数据库

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

db.dropDatabase()

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

db.dropDatabase()
创建drop_bad.js:

然后在终端中运行1命令,使用mongo shell执行脚本:

mongo < drop_bad.js
mongo
尽管有几种方法,但最好的方法(最有效、最简单)是使用
db.dropDatabase()
打开另一个终端窗口并执行以下命令

mongodb
use mydb
db.dropDatabase()
该操作的输出应如下所示

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
仍在使用中,因此此时插入任何输入都将再次初始化数据库。

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

使用;
db.dropDatabase();

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

一行远程删除mongo数据库中的所有集合

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

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

db将显示当前数据库名称 键入:db.dropDatabase();

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


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()  
显示数据库
/*是要删除的数据库*/
使用
/*下面的命令将删除数据库*/
db.dropDatabase()
以下应为终端中的输出:

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.
{
  "dropped": "<dbname>",
  "ok": 1
}
{
“删除”:“,
“好”:1
}

我们对没有出现这种变化感到惊讶。这将最小化命令行上的额外参数,并显式显示DB切换到
FOO
,然后被删除:

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


请看这个问题:。从mongo shell执行此操作非常容易。我认为他的意思是直接从提示符处执行,不是吗?在这种情况下,您必须使用这些命令生成一个.js文件,然后使用“mongo dropdb.js”从提示符处调用它“或按您所说的做些什么,然后手动删除文件。但是请注意,您不能在.js文件中使用
use
命令,您必须连接到具体的数据库(为mongo命令指定dbname)Pro提示:删除数据库后,您可能希望退出mongo shell并删除
~/.dbshell
文件以清除命令历史记录。(可能有更好的方法——我不确定。)我这样做是因为,与SQL不同,删除数据库的mongo命令实际上并不引用要删除的数据库的名称——它只是删除客户端当前连接的数据库。清除命令历史记录将防止意外重放
dropDatabase
命令并无意中删除第二个数据库。这是一个聪明的主意,@chrisallenlane。mongodb shell有时是一个相当危险的工具…:)警告:如果删除数据库并创建具有相同名称的新数据库,则必须重新启动所有mongos实例,或在读取或写入该数据库之前对所有mongos实例使用flushRouterConfig命令。此操作确保mongos实例刷新其元数据缓存,包括新数据库的主碎片的位置。否则,mongos可能会在读取时丢失数据,并可能将数据写入错误的碎片。这在我的案例中非常有用。不知怎的,我从一个较旧的安装中获得了一个名为“mean-dev”的数据库,在mongo shell中输入“mean-dev.dropDatabase()”会导致“ReferenceError”
$ mongo --host "mongodb://machine:port" --eval 'db.getSiblingDB("FOO").dropDatabase();'