mongoexport包括Ids和import不会忽略它们

时间:2013-03-05 19:27:41

标签: mongodb

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

1 个答案:

答案 0 :(得分:0)

Steve07,您希望使用投影从查询结果中明确删除_id。

有关详细信息,请参阅here