2012-01-13 14 views

risposta

958

Ti piace questa:

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

Maggiori informazioni sugli script del shell da linea di comando qui: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting

+0

Questo è stato molto utile nel mio caso. In qualche modo avevo un database chiamato "mean-dev" da una vecchia installazione, e inserendo "mean-dev.dropDatabase()" nella shell mongo risultava "ReferenceError: mean non è definito". Ma usare la soluzione in questa risposta ha fatto il trucco. +1 –

+18

Se si desidera ottenere un risultato leggibile dall'uomo, farlo in questo modo: '' 'mongo --eval" printjson (db.dropDatabase()) "' '' –

+1

K. P. MacGregor. avresti dovuto essere: "usa mean-dev" + "db.dropDatabase()" – ozma

781

Il modo migliore per farlo è dalla console MongoDB:

> use mydb; 
> db.dropDatabase(); 

In alternativa, ci si può fermare mongod e cancellare i file di dati dalla directory dei dati, quindi riavviare.

Suggerimento: è inoltre possibile spostare i file di dati in una sottocartella ed eliminarli se si è certi di non averne più bisogno.

+2

Penso che voglia dire direttamente dal prompt, vero? In questo caso devi generare un file .js con quei comandi e richiamarlo dal prompt usando "mongo dropdb.js" o qualcosa o fai come dici tu e rimuovi i file manualmente. –

+0

Non era il mio tipo signore;) –

+2

ma sii consapevole che non puoi usare il comando 'use' nel file .js, devi connetterti al DB concreto (specifica dbname per il comando mongo) – Betlista

26

Si potrebbe anche usare un "heredoc":

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

Risultati in uscita Mi piace:

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

Mi piace usare heredocs per cose come questa, nel caso tu voglia una sequenza di comandi più complessa.

17

Altro modo:

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

Questo funziona con Meteor Mongo DB –

96

Questo è un po 'più prolisso, ma penso che sia più sicuro:

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

Esegui in un terminale:

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

La stessa risposta di [questo] (http://stackoverflow.com/questions/8857276/how- do-i-drop-a-mongodb-database-from-the-command-line/18997305 # 18997305), che è stato dato un mese prima. –

17

Ecco alcuni usano pieno cancella le operazioni per mongodb usando la shell mongo

Per eliminare particolare documento in collezioni: db.mycollection.remove({name:"stack"})

Per cancellare tutti i documenti in collezioni: db.mycollection.remove()

Per collezione di eliminazione: db.mycollection.drop()

a banca dati di eliminazione: primo go a quel database tramite il comando use mydb e quindi

db.dropDatabase() 

direttamente dal prompt dei comandi o blash: mongo mydb --eval "db.dropDatabase()

104

Non è necessario heredocs o eval, mongo stessa può fare da interprete.

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

Rendere eseguibile il file ed eseguirlo.

+1

Si noti che il nome dello script deve terminare con '.js', altrimenti verrà interpretato come l'indirizzo del database. – Vegard

+0

@Vegard Questo non è corretto. Stai eseguendo 'mongo filename', che non è necessario: il file ha già un interprete nella riga superiore. Basta rendere il file eseguibile ed eseguirlo './Filename' – mikemaccana

+0

@mikemaccana Lo so, ma facendo'./Filename' eseguirà effettivamente '/ usr/bin/env mongo filename', giusto? Quindi se 'filename' non finisce in' .py', mongo non riconoscerà l'argomento come uno script da eseguire. – Vegard

28

Inizio MongoDB

comando per DROP DATABASE è:

1. prima selezionare il database che si desidera eliminare

use < database name > 

2. quindi utilizzare questo ..

db.dropDatabase() 
-1

In te Prompt dei comandi, prima connettersi a MongoDB usando seguente comando:

  • mongo -h [host-name]: [porta: numero] -d [dbname] -u [nome utente] -p [password]

si accederà a db con.

Eseguire il seguente comando per eliminare l'intero database:

  • db.dropDatabase()
-3

Il comando dropDatabase scende il database corrente, eliminando i file di dati associati. Ci sono due modi per rilasciare un database in MongoDB. Innanzitutto, se si desidera eliminare un database tempo da MongoDB. Per eliminare un database, la prima cosa da fare è passare al database usando usando il comando e dare il comando drop come di seguito.

uso previsioni

db.runCommand ({dropDatabaase: 1})

secondo luogo, la mongo shell fornisce anche il metodo helper db.dropDatabase(). I passaggi sono gli stessi di sopra.

uso del tempo

db.dropDatabase()

Se volete saperne di più, si prega di dare un'occhiata http://docs.mongodb.org/manual/reference/command/dropDatabase/

4

utilizzando JavaScript, è possibile creare facilmente un drop_bad.js script per eliminare il database:

crea drop_bad.js:

use bad; 
db.dropDatabase(); 

che correre 1 comando nel terminale exectue lo script utilizzando shell mongo:

mongo < drop_bad.js 
3

Benche ci sono diversi metodi, il modo migliore (più efficienti e più semplice) sta usando db.dropDatabase()

10

Aprire un'altra finestra terminale ed eseguire i seguenti comandi,

mongodb 
use mydb 
db.dropDatabase() 

uscita di tale operazione deve essere simile al seguente

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

prega di notare che mydb è ancora in uso, quindi l'inserimento di qualsiasi ingresso in quel momento inizializzerà nuovamente il database.

Problemi correlati