2012-01-13 32 views
748

從我的bash提示符下執行此操作的最簡單方法是什麼?如何從命令行刪除MongoDB數據庫?

+5

看到這個問題:http://stackoverflow.com/questions/3366397/delete-everything-in-a-mongodb-database。從mongo shell執行它真的很容易。 – 2012-01-13 21:16:04

+0

這個鏈接可能會幫助你http://www.codefari.com/2015/03/drop-database-in-mongodb.html – Singh 2016-07-06 17:58:59

回答

958

像這樣:

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

在命令行此腳本殼更多信息:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting

+0

這對我的情況非常有幫助。不知何故,我有一個名爲「mean-dev」的數據庫來自舊版本的安裝,並在mongo shell中輸入「mean-dev.dropDatabase()」導致「ReferenceError:mean is not defined」。但在這個答案中使用解決方案做了訣竅。 +1 – 2014-08-26 01:15:09

+18

如果你想得到一個人類可讀的結果,可以這樣做: '''mongo --eval「printjson(db.dropDatabase())」''' – 2014-09-07 11:23:39

+1

K. P. MacGregor。你應該是:「使用mean-dev」+「db.dropDatabase()」 – ozma 2016-02-23 15:14:14

781

做的是從MongoDB的控制檯的最佳方式:

> use mydb; 
> db.dropDatabase(); 

或者,您可以停止mongod並從數據目錄中刪除數據文件,然後重新啓動。

提示:您還可以將數據文件移動到子文件夾,如果您確定不再需要它們,請刪除它們。

+2

我想他的意思是直接從提示符不是他?在這種情況下,您必須使用這些命令生成一個.js文件,並使用「mongo dropdb.js」或其他方法從提示中調用該文件,或者按照您的說法進行操作並手動刪除這些文件。 – 2012-01-13 21:18:45

+0

不是礦山先生;) – 2012-01-13 21:58:42

+2

但請注意,您不能在.js文件中使用'use'命令,您必須連接到具體的數據庫(爲mongo命令指定dbname) – Betlista 2012-11-29 08:34:31

26

你也使用 「定界符」:

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

結果輸出如:

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

我喜歡在這種情況下使用heredocs,以防你想要更復雜的命令序列。

17

其他方式:

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

這一個與流星蒙牛DBs – 2014-08-07 20:29:16

96

這是一個有點冗長,但我認爲它是安全的:

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 } 
16

執行在終端:

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. 
+0

相同的答案[這一個](http://stackoverflow.com/questions/8857276/how- do-i-drop-a-mongodb-database-from-the-line-line/18997305#18997305),這是在一個月前提供的。 – 2016-09-09 18:50:32

17

下面是一些使用全使用mongo shell刪除mongodb的操作

刪除特定文件於類別:db.mycollection.remove({name:"stack"})

刪除所有文件於類別:db.mycollection.remove()

刪除收集db.mycollection.drop()

刪除數據庫: 第一次去通過use mydb命令到該數據庫,然後

db.dropDatabase() 

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

104

你不需要here文檔或EVALmongo本身可以充當翻譯。

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

使文件可執行並運行它。

+1

請注意,腳本名稱必須以'.js'結尾,否則它將被解釋爲數據庫地址。 – Vegard 2017-01-02 14:52:21

+0

@Vegard這是不正確的。您正在運行'mongo filename',這是不必要的 - 該文件的第一行中已經有一個解釋器。只要使文件可執行並運行'./filename' – mikemaccana 2017-01-04 10:39:28

+0

@mikemaccana我知道,但'./file'實際上會運行'/ usr/bin/env mongo filename',對吧?因此,如果'filename'不以'.py'結尾,mongo將不會將該參數識別爲要運行的腳本。 – Vegard 2017-01-04 11:00:15

28

啓動MongoDB的

命令數據庫中刪除是:

首先選擇要刪除

use < database name > 

2.然後使用這個數據庫..

db.dropDatabase() 
-1

在你命令提示,首先連接使用下面的命令的MongoDB:

  • 蒙戈-h [主機名]:[端口:號] -d爲[dbname] -u [用戶名] -p [口令]

你將會訪問db。

運行以下命令以刪除整個數據庫:

  • db.dropDatabase()
-3

的dropDatabase命令丟棄當前數據庫,刪除相關聯的數據文件。有兩種方法可以在MongoDB中刪除數據庫。首先,如果您想從MongoDB中刪除數據庫天氣。要刪除數據庫,首先要做的就是使用使用命令切換到數據庫,並給出如下的drop命令。

使用天氣

db.runCommand({dropDatabaase:1})

其次,蒙戈殼還提供了輔助方法db.dropDatabase()。步驟與上述相同。

使用天氣

db.dropDatabase()

如果您想了解更多內容,請看看 http://docs.mongodb.org/manual/reference/command/dropDatabase/

4

使用JavaScript,您可以輕鬆創建一個drop_bad.js腳本丟棄您的數據庫:

創建drop_bad。JS

use bad; 
db.dropDatabase(); 

比終端運行1個命令使用蒙戈外殼exectue腳本:

mongo < drop_bad.js 
3

Eventhough有幾種方法,最好的方法(最有效的和最簡單的)是利用db.dropDatabase()

10

打開另一個終端窗口,執行以下命令,

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仍然在使用,因此將在那個時候任何輸入將重新初始化數據庫。