/ / mongodbはインデックスで使用されているフィールドを変更した場合、インデックスを再作成しますか? - mongodb、索引付け、再索引

インデックスに使われているフィールドを変更した場合、mongodbは再インデックスを作成しますか? - mongodb、索引付け、再索引

"primary_key"というフィールドを持つコレクションがあるとします。 {"primary_key": "1234"、 "name": "jimmy"、 "lastname": "page"}

私は "primary_key"のインデックスを持っています。

このコレクションには何百万もの行があります。いずれかのレコードのprimary_keyを変更するのがどれほど費用がかかるかを見てください。それはテーブル全体の再インデックスをトリガーしますか?または変更されたレコードを再インデックスするだけですか?どちらの場合でも、それは高価ですか?

回答:

回答№1は1

mongodbのインデックスフィールドを更新すると、それを使用する索引(または索引が複数ある場合は索引)の更新。それは「再索引付け」しません。それほど費用がかかりません。事実上古いエントリを削除して新しいエントリを挿入します。

このドキュメントでは、mongodbインデックスについてかなりの詳細があります。

http://docs.mongodb.org/master/MongoDB-indexes-guide.pdf

ところで、mongodbがプライマリキーとして使う1つの特別なフィールド_idがあることに注意してください

_id すべてのMongoDB文書に必要なフィールド。 _idフィールドには一意の値が必要です。 _idフィールドはドキュメントのものと考えることができます 主キー。 _idフィールドを付けずに新しい文書を作成すると、 MongoDBは自動的にフィールドを作成し、独自のBSONを割り当てます ObjectId。

_idフィールドは更新できません。