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