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,或者让导入忽略它们?谢谢你的帮助!

4

1 回答 1

0

Steve07,您想使用投影从查询结果中显式删除 _id。

有关详细信息,请参见此处

于 2013-04-01T21:10:42.700 回答