Как удалить коллекцию в MongoDB?

Каков наилучший способ удалить коллекцию в MongoDB?

Я использую следующее:

db.collection.drop()

Как описано в руководстве:

db.collection.drop()

Удаляет коллекцию из базы данных. Метод также удаляет любые индексы, связанные с отброшенной коллекцией. Метод обеспечивает обертка вокруг команды drop.

Но как я могу удалить его из командной строки?

Ответ 1

Таким образом, любой из этих способов является допустимым:

mongo <dbname> --eval 'db.<collection>.drop()'

db.<collection>.drop()

Так я полностью его протестировал, создав базу данных mytest с коллекцией hello.

  • Создать db mytest:

    > use mytest
    switched to db mytest
    
  • Создайте коллекцию hello:

    > db.createCollection("hello")
    { "ok" : 1 }
    
  • Показать все коллекции там:

    > db.getCollectionNames()
    [ "hello", "system.indexes" ]
    
  • Вставьте некоторые фиктивные данные:

    > db.hello.insert({'a':'b'})
    WriteResult({ "nInserted" : 1 })
    
  • Убедитесь, что он вставлен:

    > db.hello.find()
    { "_id" : ObjectId("55849b22317df91febf39fa9"), "a" : "b" }
    
  • Удалите коллекцию и убедитесь, что ее больше нет:

    > db.hello.drop()
    true
    > db.getCollectionNames()
    [ "system.indexes" ]
    

Это также работает (я не повторяю предыдущие команды, так как это просто воссоздание базы данных и коллекции):

$ mongo mytest --eval 'db.hello.drop()'
MongoDB shell version: 2.6.10
connecting to: mytest
true
$

Ответ 2

Чтобы удалить коллекцию 'users' из базы данных 'mydb':

$ use mydb
$ db.users.drop()