1. ホーム
  2. mongodb

[解決済み] MongoDBでコレクションを削除するには?

2022-02-13 14:20:36

質問

MongoDBでコレクションをドロップするのに最適な方法は何ですか?

下記を使用しています。

db.collection.drop()

で説明したように マニュアル :

db.collection.drop()

データベースからコレクションを削除します。このメソッドは、すべての インデックスを削除します。このメソッドは ドロップコマンドのラッパーです。

でも、コマンドラインから落とすにはどうしたらいいのでしょうか?

どのように解決するのですか?

つまり、どちらかの方法が有効なのです。

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

db.<collection>.drop()
#  ^^^^^^^^^^^^


例えば、コレクションの場合 mycollection データベース内の mydb と言うことになります。

mongo mydb --eval 'db.mycollection.drop()'

db.mycollection.drop()


これは、私が完全にテストした方法で、データベースを作成します。 mydb コレクションと hello .

  • dbの作成 mydb :

    > use mydb
    switched to db mydb
    
    
  • コレクションを作成する mycollection :

    > db.createCollection("mycollection")
    { "ok" : 1 }
    
    
  • そこにあるすべてのコレクションを表示します。

    > db.getCollectionNames()
    [ "mycollection", "system.indexes" ]
    
    
  • ダミーデータを挿入します。

    > db.mycollection.insert({'a':'b'})
    WriteResult({ "nInserted" : 1 })
    
    
  • 挿入されたことを確認する。

    > db.mycollection.find()
    { "_id" : ObjectId("55849b22317df91febf39fa9"), "a" : "b" }
    
    
  • コレクションを削除し、それ以上存在しないことを確認します。

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

これもうまくいきます(データベースとコレクションを再作成するだけなので、前のコマンドを繰り返していません)。

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