私は現在動作している以下のコードを持っています。それは通過し、指定された日付よりも新しいすべてのファイルを見つけ、正規表現にマッチしてそれを削除し、それを指しているチャンクも削除します。MongoDBから大量のデータを削除する
conn = new Mongo("<url>");
db = conn.getDB("<project>");
res = db.fs.files.find({"uploadDate" : { $gte : new ISODate("2017-04-04")}}, {filename : /.*(png)/});
while (res.hasNext()) {
var tmp = res.next();
db.getCollection('fs.chunks').remove({"files_id" : tmp._id});
db.fs.files.remove({ "_id" : tmp._id});
}
これは非常に遅く、ほとんどの場合、クライアントはただ時間切れから実行しています。
また、私はファイルシステムからファイルを削除していて、通常のコレクションからは削除していないことを知っています。長い話ですが、上記のコードはまさに私がしたいことです。
これをより速く実行するにはどうすればよいですか? 私はこのコードをクライアント上で実行していることを以前に指摘されましたが、サーバー側で実行することは可能ですか? Javascriptドライバを使用する前に、おそらくこれが原因です。私は、Mongoシェルを使ってサーバ上のeverythinを実行すると仮定します。
ご協力いただければ幸いです。私は、ファイルシステムからファイルを削除てることを知っているので、近いが、これまで...
downvotes ... – justynnuff