我正在尝试使用导出/导入在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,或让导入忽略它们?谢谢你的帮助!