0

エクスポート/インポートを使用して、MongoDB データベース間でデータを移動しようとしています。他のデータベースを更新したい配列フィールドを持つ埋め込みドキュメントがあります。

私の最初の問題は、埋め込みドキュメントから必要なフィールドだけをエクスポートしようとすることです。必要なフィールドだけでなく、サブドキュメント全体を取得できます。さて、それはショーストッパーではありません。これが私のエクスポートコマンドです。

mongoexport -d mydb -c mycollection -o ~/temp/mongoexport/myexport.json -f id_field,subdoc_field2 -q '{$query:{"subdoc.subfield":{"$exists":true}}}'      

私はこのようなものを手に入れます

{ "_id" : { "$oid" : "5060f491585dc52991000002" }, "id_field" : "R0410202", "subdoc" : [ { "_id" : { "$oid" : "50eb073d585dc586d600363e" },"subdoc_field1": "value1", "subdoc_field2": [intval1, intval2]}]}
{ "_id" : { "$oid" : "5060f491585dc52991000003" }, "id_field" : "R0410202", "subdoc" : [ { "_id" : { "$oid" : "50eb073d585dc586d600364d" },"subdoc_field1": "value2", "subdoc_field2": [intval3, intval4]}]}

インポートしようとすると、一致するドキュメントが更新されません。これが私のコマンドです。

mongoimport  -c mycollection --db assr3_production --file ~/temp/mongoexport/myexport.json -f subdoc_field2  --upsert --upsertFields id_field     

「ドキュメントの _id を変更できません」というエラー メッセージが表示されます。私はIDを変更しようとしていませんでしたが、とにかくしようとしているようです。

エクスポートに ID を含めないようにする方法、またはインポートで ID を無視する方法はありますか? 助けてくれてありがとう!

4

1 に答える 1