2016-11-20 58 views
1

我试图更新我的集合中每个文档中的一个字段,使用包含-upsert的csv和Mongoimport。 但是,该过程将删除文档中的所有其他字段。MongoDB:使用MongoImport和csv只更新单个字段

我有一个藏书有像证件:

{ 

    "_id" : "knOIv8ZUUK", 
    "Price" : 2.2, 
    "Title" : "Rats Ahoy" 
} 

{ 

    "_id" : "okYEGuWznv", 
    "Price" : 3.3, 
    "Title" : "Friendly Fish" 
} 

csv文件:

_id,Price 

knOIv8ZUUK,2.2 

okYEGuWznv,3.3 

和进口使用:

mongoimport --db local --collection Books --upsert --type csv 
      --headerline --file c:\import\newPrice 

有了结果删除标题字段

{ 

    "_id" : "knOIv8ZUUK", 
    "Price" : 2.2 
} 

{ 

    "_id" : "okYEGuWznv", 
    "Price" : 3.3 
} 

我错误地认为Upsert会更新导入的字段。 那么是否有另一个过程可以用来更新大量文档中的1个字段? 感谢

+0

嗨@MarkM,分别为你能解决吗?如果你是,请分享解决方案。谢谢! –

回答

0

新功能已经从3.4版本Documentation here.

检查添加此选项

--mode insert|upsert|merge 

你的情况,你可以使用这个可能是:

--mode merge