0

MongoFB のドキュメントを読んでいます。この URL http://docs.mongodb.org/manual/tutorial/build-indexes-on-replica-sets/、「mongo シェルで ensureIndex() を使用して新しいインデックスを作成するか、ドライバーで同等の方法を使用して、新しいインデックスを作成します。 .この操作は、この mongod インスタンスでインデックスを作成または再構築します"

よくわかりました?インデックスが既に存在する場合、mongoDB は再構築を実行しますか?

したがって、「reIndex()」との違いは、reIndex() がコレクションのすべてのインデックスに対して再構築を実行することです。それが正しいか?

4

1 に答える 1

2

それは英語の間違いか、レプリカセットのインデックスを再構築している場合のどちらかについて話していると思いますensureIndex()

http://docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/#behaviors (ここからリンクされているもの: http://docs.mongodb.org/manual/tutorial/build-indexes- on-replica-sets/#build-the-index )

同じインデックス指定で同時に複数の ensureIndex() メソッドを呼び出した場合、最初の操作のみが成功し、他のすべての操作には影響しません。

したがって、インデックスを再構築しない限り、再度呼び出しても再構築されません。

インデックスを再構築する場合は、最初に削除してから再実行する必要がありますensureIndex()

インデックス オプションを追加または変更するには、dropIndex() メソッドを使用してインデックスを削除し、新しいオプションを使用して別の ensureIndex() 操作を発行する必要があります。

1 セットのオプションを使用してインデックスを作成し、最初にインデックスを削除せずに、同じインデックス フィールドと異なるオプションを使用して ensureIndex() メソッドを発行すると、ensureIndex() は新しいオプションを使用して既存のインデックスを再構築しません。

于 2014-03-12T18:29:23.140 に答える