2012-03-06 14 views
1

複数のコレクションからオブジェクトを削除する方法はありますか? MongoDBのこの5つのコレクションコマンドのすべてを削除するのと同じですか?一度に複数のコレクションからアイテムを削除する

Mongoデータベースの各コレクションから手動で削除するのは時間がかかります。

答えて

1

Andrewは言いましたが、これを行う方法はありませんが、Javascriptを使用して必要なものを得ることができます。私はすぐにデータベースのリストをドロップしたい場合たとえば、(とdirtily、これは単なる概念実証コードサンプルではありません!):

var deletelist = ["deleteme1", "deleteme2", "deleteme3"] 
deletelist.forEach(
    function deletedbs(name) { 
     db = db.getMongo().getDB(name); 
     db.dropDatabase(); 
     print(name + " deleted"); 
    } 
) 

もちろんのエラーチェックが、サーバー側のこのようなクロスコレクションとデータベース間の機能のためにスクリプトが機能します。あなたはすべてのデータベース上で何かを実行したい場合、あなたはこのようなリストを構築することができます:

var allDBs = db.getMongo().getDBNames() 
for(var name in allDBs){ 
     db = db.getMongo().getDB(name); 
     db.<command to execute on each DB>; 
} 

はもちろん、あなたはあなたがあなたのデータベースを破壊しないよう、このようなことを実行しているときに、非常に、非常に注意する必要があり、とても広くテストし、慎重に使用:)

をサーバーサイドJSの詳細については、こちらのMongoDBのドキュメントをチェックアウト:

http://www.mongodb.org/display/DOCS/Server-side+Code+Execution

1

なし実際に、あなただけ手動で各コレクションからすべての項目を削除する必要はありません:

db.foo1.remove({}) 
db.foo2.remove({}) 

また、あなたはパフォーマンスを気にしている場合、あなたはそれを速くすることになって、まったくコレクションをドロップすることができます。

db.foo1.drop() 
db.foo2.drop() 

また、これらの5つのコレクションを削除する必要がある場合は、1つのデータベースにまとめてデータベース全体をドロップしてください。

use dbWithFiveCollections 
db.dropDatabase() 
関連する問題