0

mongoコレクションからすべてのデータを削除する必要があります。コレクションの削除は、よりも速く機能しますcollection.remove(new BasicDBObject())。ただし、インデックス定義も削除されます。したがって、コレクションを削除した後にインデックス定義を復元したいと思います。

一般的に私は次の計画を持っています:

  1. ドロップする前にすべてのインデックス定義を取得します: http ://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
  2. ドロップ後に定義を再作成します: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"));
}

いいえの場合-私の目標を達成するための最良の方法は何ですか?

助けてくれてありがとう!

4

1 に答える 1

0

あなたは近くにいます。取得したインデックスのインデックスオプションを読み取り、createIndex(DBObjectキー、DBObjectオプション)バージョンのメソッドを使用して、新しく作成したインデックスにそれらを適用する必要があります。

于 2011-10-11T11:40:54.010 に答える