22

データベースには、削除する必要がある mongodb コレクションがたくさんあります。それらはすべて類似した名前を持っており、ワイルドカード文字のみを使用できれば簡単に削除できます。しかし、それはできないようです。

一度に複数のコレクションを選択して削除する方法はありますか?

4

5 に答える 5

29

正規表現の場合、string.match を使用できます

db.getCollectionNames().forEach(function(c) {
    if(!c.match("^system.indexes")) { 
        db.getCollection(c).drop();
    }
  });
于 2013-02-11T12:10:38.100 に答える
8

次のコマンドを使用して、すべてのコレクションを削除できます。

> use database_name;

> db.getCollectionNames().forEach(function(c) {
    if(c != 'system.indexes') { 
        db.getCollection(c).drop();
    }
  });
于 2012-06-26T12:25:02.627 に答える
7

いいえ、ワイルドカード/正規表現で複数のコレクションを削除する方法はありません。あなたはそれらを一つずつ落とさなければなりません。私は最近同様のタスクを実行し、スクリプトは1秒あたり最大20〜30のコレクションをドロップすることができました。いくつ持っていますか?

于 2012-06-26T12:09:04.207 に答える
4

mongo シェルを使用して、データベース内のすべてのコレクションを削除できます。db.dropDatabase()実行する前に、本当にすべてを核攻撃したいことを確認してください。

于 2013-09-23T16:18:23.103 に答える