MongoDBは、自分自身を守るためにこれを行っている可能性があります。 dropDups
の場合 間違ったフィールドでは、データセット全体をホースでつなぎ、削除操作(書き込みと同じくらい「コストがかかる」)でDBをロックダウンする可能性があります。
したがって、最初の質問は、なぜid
に一意のインデックスを作成するのかということです。 フィールド?
MongoDBはデフォルトの_id
を作成します 自動的に一意のフィールドおよび インデックス付き。デフォルトでは、MongoDBは_id
にデータを入力します ObjectId
を使用 ただし、これを任意の値でオーバーライドできます。 ID値の準備ができている場合は、それらを使用できます 。
値を再インポートできない場合は、id
を変更しながら値を新しいコレクションにコピーします _id
に 。次に、古いコレクションを削除して、新しいコレクションの名前を変更できます。 (「重複キーエラー」が大量に発生することに注意してください。コードがそれらをキャッチして無視するようにしてください )