Answers:
像这样:
mongo <dbname> --eval "db.dropDatabase()"
有关从命令行编写Shell脚本的更多信息,请访问:https : //docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting
mongo <dbname> --eval "printjson(db.dropDatabase())"
mongo <yourDb> --host <yourHost> --port <yourPort> --eval 'db.dropDatabase()'
最好的方法是从mongodb控制台执行:
> use mydb;
> db.dropDatabase();
或者,您可以停止mongod
并从数据目录中删除数据文件,然后重新启动。
提示:您也可以将数据文件移动到子文件夹中,如果确定不再需要它们,可以将其删除。
use
在.js文件中使用命令,必须连接到具体的数据库(为mongo命令指定dbname)
~/.dbshell
文件以清除命令历史记录。(这样做可能有更好的方法-我不确定。)我这样做是因为,与SQL不同,删除数据库的mongo命令实际上并未引用要删除的数据库的名称 -它只是删除了客户端当前连接到的数据库。清除命令历史记录将防止您意外重播dropDatabase
命令并意外删除第二个数据库。
我发现这很容易记住:
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 }
您不需要heredocs或eval,mongo
它本身可以充当解释器。
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
使文件可执行并运行。
.js
,否则将被解释为数据库地址。
mongo filename
,这是不必要的-文件已在第一行中包含解释器。只需使文件可执行并运行即可./filename
./filename
实际上可以运行/usr/bin/env mongo filename
,对吗?因此,如果filename
不以结尾.py
,mongo不会将参数识别为要运行的脚本。
ps
。
ps
仅显示您在调用时正在运行的内容ps
,而不exec
显示导致该问题的调用链,也不显示内核为加载和执行文件所做的工作。如果您想知道真正发生了什么,则应使用编写包装器/usr/bin/env
,将其设置为shebang行中的可执行文件,然后使用来启动整个过程strace
。
另一种方式:
echo "db.dropDatabase()" | mongo <database name>
在终端中执行:
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.
即使有几种方法,最好的方法(最有效,最简单)是使用 db.dropDatabase()
在命令提示符中,首先使用以下命令连接到mongodb:
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
您将使用访问数据库<dbname>
。
运行以下命令删除整个数据库:
db.dropDatabase()
登录到mongoDB命令行:并输入以下命令。 使用“ YOUR_DATABASE_NAME”; 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 shell使用以下命令删除数据库
采用 ; db.dropDatabase();
> use auth-users ; db.dropDatabase()
,> use auth-users; db.dropDatabase()
并且都返回了[thread1] Error: [auth-users ; db.dropD atabase()] is not a valid database name :