データベースを少し再構成しましたが、特定のコレクションが不要になりました。しかし、手で取り除くにはあまりにも多くの人がいる(実際には何千人も)。問題のコレクションはそれぞれ「cache_」で始まり、完全にクリーンアップされていることを確認したいいくつかのインデックスが含まれています。MongoDB:名前が文字列と一致するすべてのコレクションを削除します。
すべてのコレクション名をループし、 "cache_"で始まるコレクションを削除するには、mongoシェルを使用する方法を理解しようとしています。 Queries & Cursors documentationでは、コレクション内の文書をループする方法を理解していますが、MongoDBシェルを使用してデータベース内のコレクションをループする方法については理解していません。擬似コードで
が、これは私が必要なものである:
var all_collections = show collections
for(var collection in all_collections)
if(collection.name.indexOf('cache_')==0)
collection.drop()
FWIW、私は等「コレクション名を通じてMongoDBのループ」の検索やったと何も見つかっていないが、多分私はでSUX teh googlez = P
関連するメモ...この程度のリストラを行った後、削除されたインデックスなどがすべてきれいできれいであることを確認するために、私はdb.repairDatabase()
などの処理を行うべきですか?
ありがとうございました。
FTW、ありがとう。私は、 "show collection" => "db.getCollectionNames();"ということを知らなかったと思います。 –
** db [collectionName] **はここのキーです。 _JavascriptがRoboMongo_ 'VARコレクション= [ 'collection1'、 'コレクション2'] collections.forEach(関数(coll_name){ プリント(coll_name) DB [coll_name] .drop() })' – Abhijeet