NoSqlデータベースでは外部キーの制約が当てはまりませんが、フィールドの名前を変更できるようにするにはインデックスを更新しないようにしてください。 http://www.mongodb.org/display/DOCS/Updating#Updating-%24renameMongoはインデックスの更新ではなく名前の変更
{ $rename : { old_field_name : new_field_name } }
が、私は
db.mycollections.ensureIndex({old_field_name:1});
を持っていた場合、インデックスが自動的に更新された場合、それは素晴らしいことではないでしょうか?
system.indexesは単なる別のテーブルなので、このような自動更新では、外部キー制約のソートが行われるため、インデックスの更新は行われませんか?あるいは、私は特定の旗が欠けていますか?
リインデックスは、相対的に言えば、かなりリッチな操作であることを指摘する価値があります。リネームがデフォルトで再インデックスを開始できるようにするのは危険なことがあります。オプション。開発者がどのように10genで動作するかを知っていると、ノブとオプションを最小限に抑え、多くの場合に混乱するオプションを追加するのではなく、デフォルトの動作について賢明にする努力があると言えます。それが何かであれば、Jiraでリクエストを提出して、どのような反応を得るかを見たいと思っています。 –
この場合、リネームフィールド操作は使用できません。 dbには、フィールドの名前が変更され、警告されるということがわかります。 –
個人的に私は彼らが良い選択をしたと思います。 10Genの提案は、主観的な議論の場ではなく、Q&Aフォーラムであるため、「行うべきこと」に関するあなたの意見は、10Genの提案を提出することによって最もよく対処されます。 –