Как удалить базу данных MongoDB из командной строки?

790

Какой самый простой способ сделать это из моей подсказки bash?

Теги:

16 ответов

1013
Лучший ответ

Вот так:

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

Подробнее о скрипте оболочки из командной строки здесь: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting

  • 0
    Это было очень полезно в моем случае. Каким-то образом у меня была база данных с именем "mean-dev" из более старой установки, и ввод "mean-dev.dropDatabase ()" в оболочке mongo привел к "ReferenceError: mean is notfined". Но использование решения в этом ответе сделало свое дело. +1
  • 20
    Если вы хотите получить удобочитаемый результат, сделайте это следующим образом: mongo <dbname> --eval "printjson(db.dropDatabase())"
Показать ещё 1 комментарий
856

Лучший способ сделать это - с консоли mongodb:

> use mydb; 
> db.dropDatabase();

В качестве альтернативы вы можете остановить mongod и удалить файлы данных из своего каталога данных, а затем перезапустить.

Подсказка: вы также можете переместить файлы данных в подпапку и удалить их, если вы уверены, что они вам больше не нужны.

  • 2
    Я думаю, он имеет в виду прямо из приглашения, не так ли? В этом случае вам нужно либо сгенерировать файл .js с этими командами и вызвать его из командной строки, используя «mongo dropdb.js», либо сделать что-либо, как вы говорите, и удалить файлы вручную.
  • 2
    но имейте в виду, что вы не можете use команду use в файле .js, вам нужно подключиться к конкретной БД (укажите dbname для команды mongo)
Показать ещё 3 комментария
111

Вам не нужны heredocs или eval, mongo сам может выступать в качестве интерпретатора.

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

Сделайте исполняемый файл и запустите его.

  • 2
    Обратите внимание, что имя скрипта должно заканчиваться на .js , в противном случае оно будет интерпретироваться как адрес базы данных.
  • 1
    @ Vegard Это не правильно. Вы используете mongo filename которое не нужно - в файле уже есть переводчик в верхней строке. Просто сделайте файл исполняемым и запустите его ./filename
Показать ещё 13 комментариев
99

Я нашел это легко запомнить:

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

Запустите MongoDB

Командная строка для базы данных:

1. сначала выберите базу данных, которую вы хотите удалить

use < database name >

2. Затем используйте это.

db.dropDatabase()
29

Вы также можете использовать "heredoc":

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

Вот некоторые из них используют полные операции удаления для mongodb, используя оболочку mongo

Чтобы удалить определенный документ в коллекциях: db.mycollection.remove( {name:"stack"} )

Чтобы удалить все документы в коллекциях: db.mycollection.remove()

Чтобы удалить коллекцию: db.mycollection.drop()

чтобы удалить базу данных: сначала перейдите в эту базу данных с use mydb команды use mydb а затем

db.dropDatabase()

непосредственно из командной строки или blash: mongo mydb --eval "db.dropDatabase()

17

Другой способ:

echo "db.dropDatabase()" | mongo <database name>
  • 0
    Этот работает с БД Meteor Mongo
15

Выполнить в терминале:

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.
  • 1
    Тот же ответ, что и этот , который был дан месяцем ранее.
11

Откройте другое окно терминала и выполните следующие команды:

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 все еще используется, поэтому вставка любого ввода в это время снова инициализирует базу данных.

4

Используя Javascript, вы можете легко создать drop_bad.js script, чтобы удалить свою базу данных:

создать drop_bad.js:

use bad;
db.dropDatabase();

Запустите команду 1 в терминале, чтобы вывести script с помощью оболочки mongo:

mongo < drop_bad.js
3

Несмотря на то, что существует несколько методов, лучший способ (наиболее эффективный и простой) - использовать db.dropDatabase()

0

Войдите в вашу командную строку mongoDB: и введите следующие команды. использование; db.dropDatabase();

0

В командной строке сначала подключитесь к mongodb, используя следующую команду:

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

вы будете обращаться к БД с <dbname>.

Выполните следующую команду, чтобы удалить всю базу данных:

db.dropDatabase()
-2

используйте следующую команду из оболочки Монго, чтобы сбросить дб

использование; db.dropDatabase();

  • 0
    как эта команда указывает, какую базу данных отбрасывать? С базой данных «auth-users» я попытался > use auth-users ; db.dropDatabase() и > use auth-users; db.dropDatabase() и оба вернули [thread1] Error: [auth-users ; db.dropD atabase()] is not a valid database name :
  • 0
    Это ничего не добавляет к другим уже опубликованным ответам.
-3

Команда dropDatabase отбрасывает текущую базу данных, удаляя связанные файлы данных. Существует два способа сброса базы данных в MongoDB. Во-первых, если вы хотите сбросить базу данных погода из MongoDB. Чтобы сбросить базу данных, первое, что нужно сделать, - это переключиться на базу данных с помощью команды use и дать команду drop, как показано ниже.

использовать погоду

db.runCommand({dropDatabaase: 1})

Во-вторых, оболочка mongo также предоставляет вспомогательный метод db.dropDatabase(). Шаги такие же, как указано выше.

использовать погоду

db.dropDatabase()

Если вам нравится больше узнать об этом, пожалуйста, посмотрите http://docs.mongodb.org/manual/reference/command/dropDatabase/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню