0
を無視するのは、私は、次の2つのJSONsがあるとしましょう、と私は既存のドキュメントをマージするか、更新せずに同じコレクションにインポートしたいと思います。インポート中に既存の_idキーを無視し、以下の例の6つのドキュメントすべてを含む単一のコレクションで終了する方法はありますか?mongoimportは_idキー(E11000キーエラーインデックスを複製)
古い_idプロパティは、まったく関連性がありません。ソースファイルから名前を変更したり削除したりすることができますが、インポート時にこれを行う方法があるのか不思議です。
coll1.json:
{"_id":1,"a":1}
{"_id":2,"a":2}
{"_id":3,"a":3}
と
coll2.json:
{"_id":1,"a":4}
{"_id":2,"a":5}
{"_id":3,"a":6}
私は単にそれらをインポートする場合
は、mongoimport --db imp --collection imp --file coll2.json
と私はE11000重複キーエラーを取得しています。あなたはフィールド_id MongoDBの
では、次のコマンド mongoimport --db imp --collection imp --mode upsert --file coll2.json
を使用して文書のインポートを上書きする場合
古い_idプロパティは、まったく関連性がありません。ソースファイルから名前を変更/削除することができますが、元の_idsを保持せずにデータをMongoにインポートする方法があるのでは不思議です。 – orszaczky
ちょっと私はそれを見て答えを編集した - これを行うには、インポートクエリで - モードupsertを追加する必要があります。 –
upsert coll2はcoll1の文書を上書きします。私はそれらをすべて保管して輸入する必要があります。 – orszaczky