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