mongoコレクションからすべてのデータを削除する必要があります。コレクションの削除は、よりも速く機能しますcollection.remove(new BasicDBObject())
。ただし、インデックス定義も削除されます。したがって、コレクションを削除した後にインデックス定義を復元したいと思います。
一般的に私は次の計画を持っています:
- ドロップする前にすべてのインデックス定義を取得します: http ://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
- ドロップ後に定義を再作成します:http ://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-CreatingAnIndex
私にとっての問題は、インデックスの再作成のために取得/渡す必要がある正確な値です。たとえば、すべてのタイプのインデックスに対して正しい作業を実行します。
List<DBObject> storedDefinitions = coll.getIndexInfo();
coll.drop();
for (DBObject storedDefinition : storedDefinitions) {
coll.createIndex(storedDefinition.get("key"));
}
いいえの場合-私の目標を達成するための最良の方法は何ですか?
助けてくれてありがとう!