coffee-grinder
coffee-grinder

Reputation: 27600

How do I drop a MongoDB database from the command line?

What's the easiest way to do this from my bash prompt?

Upvotes: 945

Views: 535334

Answers (22)

Tim Gautier
Tim Gautier

Reputation: 30112

Like this:

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

More info on scripting the shell from the command line here: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting

Edit:

In Mongo 6.0 mongo was removed and replaced with mongosh which has to be installed separately. More info here: https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh

The equivalent in mongosh would be:

mongosh --eval "use <dbname>" --eval  "db.dropDatabase()"

Upvotes: 1172

Susil Kumar Behera
Susil Kumar Behera

Reputation: 87

You can first switch to your database which you want to delete. Then you can delete the same by using the command dropDatabase().

Code :

>use dbName

>db.dropdataBase()

The result will be :

{ "dropped" : "dbName", "ok" : 1 }

If you want to delete a specific collection in a database, then switch to the database and enter the following command.

Code:

>use dbName

db.collection.drop()

The result will be :

true

If you want a better understanding of MongoDB shell commands it's better to follow the documentation always.

Link to the documentation : https://www.mongodb.com/docs/manual/reference/method/#std-label-js-administrative-methods

Upvotes: 0

Wernfried Domscheit
Wernfried Domscheit

Reputation: 59456

In order to be really sure that you drop the correct database use

mongo <connection properties> --eval "db.getSiblingDB('dbname').dropDatabase()" 

See Authentication failure while trying to save to mongodb to understand the concerns.

Upvotes: 0

Anoop Sharma
Anoop Sharma

Reputation: 399

use following command from mongo shell to drop db

use <database name>; 
db.dropDatabase();

Upvotes: 0

Buzz Moschetti
Buzz Moschetti

Reputation: 7578

Surprised that we haven't seen this variation come up. This minimizes extra args on the command line and explicitly shows the DB being switched to FOO and then dropped:

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

Upvotes: 3

Shreya
Shreya

Reputation: 79

Open a terminal and type:

mongo 

The below command should show the listed databases:

show dbs 

/* the <dbname> is the database you'd like to drop */
use <dbname> 

/* the below command will delete the database */
db.dropDatabase()  

The below should be the output in the terminal:

{
  "dropped": "<dbname>",
  "ok": 1
}

Upvotes: 5

Joe Drumgoole
Joe Drumgoole

Reputation: 1348

Drop a MongoDB database using python:

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")

Upvotes: -1

nixxo_raa
nixxo_raa

Reputation: 402

db will show the current Database name type: db.dropDatabase();

1- select the database to drop by using 'use' keyword.

2- then type db.dropDatabase();

Upvotes: 0

jasenmichael
jasenmichael

Reputation: 428

one liner remote remove all collections from mongo database

note must use --host, (-h is help for mongo command), and -d is not an option, select the db and command after password.

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

Upvotes: 3

Shrinivas Kalangutkar
Shrinivas Kalangutkar

Reputation: 1011

LogIn into your mongoDB command line: And type the below commands. use "YOUR_DATABASE_NAME"; db.dropDatabase();

Upvotes: 0

Alex Baban
Alex Baban

Reputation: 11702

I found this easy to remember:

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 }

Upvotes: 131

TechGuy
TechGuy

Reputation: 329

In you command prompt, First connect to mongodb using following command:

mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]

you will be accessing db with <dbname>.

Run the following command to drop the whole database:

db.dropDatabase()

Upvotes: 2

bhv
bhv

Reputation: 5378

Here are some use full delete operations for mongodb using mongo shell

To delete particular document in collections: db.mycollection.remove( {name:"stack"} )

To delete all documents in collections: db.mycollection.remove()

To delete collection : db.mycollection.drop()

to delete database : first go to that database by use mydb command and then

db.dropDatabase()

directly from command prompt or blash : mongo mydb --eval "db.dropDatabase()

Upvotes: 23

helcode
helcode

Reputation: 2048

Open another terminal window and execute the following commands,

mongodb
use mydb
db.dropDatabase()

Output of that operation shall look like the following

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

Please note that mydb is still in use, hence inserting any input at that time will initialize the database again.

Upvotes: 11

Lakmal Vithanage
Lakmal Vithanage

Reputation: 2777

Eventhough there are several methods, The best way (most efficient and easiest) is using db.dropDatabase()

Upvotes: 2

sergiuz
sergiuz

Reputation: 5529

Using Javascript, you can easily create a drop_bad.js script to drop your database:

create drop_bad.js:

use bad;
db.dropDatabase();

Than run 1 command in terminal to exectue the script using mongo shell:

mongo < drop_bad.js

Upvotes: 5

mikemaccana
mikemaccana

Reputation: 123198

You don't need heredocs or eval, mongo itself can act as an interpreter.

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

Make the file executable and run it.

Upvotes: 119

mnemosyn
mnemosyn

Reputation: 46301

The best way to do it is from the mongodb console:

> use mydb; 
> db.dropDatabase();

Alternatively, you can stop mongod and delete the data files from your data directory, then restart.

Hint: you can also move the data files to a subfolder, and delete them if you're sure you no longer need them.

Upvotes: 910

user2719890
user2719890

Reputation:

Start MongoDB

Command for Database drop is :

1. first select the database which you want to delete

use < database name >

2. Then use this..

db.dropDatabase()

Upvotes: 31

Anderson Lopes
Anderson Lopes

Reputation: 639

Execute in a terminal:

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.

Upvotes: 15

Gabriel Mancini
Gabriel Mancini

Reputation: 316

Other way:

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

Upvotes: 19

David
David

Reputation: 639

You could also use a "heredoc":

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

Results in output like:

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

I like to use heredocs for things like this, in case you want more complex sequence of commands.

Upvotes: 29

Related Questions