mongoimport +点符号,具有CSV

子记录合并更新

比方说,我有一个记录mongoimport +点符号,具有CSV

{ 

_id: 100,

foo: {

bar: 0,

baz: 1

}

}

,我想用CSV与mongoimport更新它

_id,foo.kek 

100,9000

然而,

mongoimport --type csv --file myfile.csv --headerline --mode merge 

会重写sub-BSON对象富完全:

{ 

_id: 100,

foo: {

kek: 9000

}

}

有没有办法做部分更新

{ 

_id: 100,

foo: {

bar: 0,

baz: 1,

kek: 9000

}

}

与mongoimport?有没有其他有效的方法来做到这一点(我有数百万条记录)?

MongoDB的服务器版本:3.0.14

mongoimport版本:r3.4.2

提前感谢!

回答:

这是不可能与mongoimport。

--mode merge$set就是全部文件:

_, err = up.collection.Upsert(selector, bson.M{"$set": document}) 

https://github.com/mongodb/mongo-tools/blob/cb82c3f9336da19b9cafabf7f57e5e5b0e875338/mongoimport/mongoimport.go#L544

最简单的方法是打补丁的代码来定制您的需求,如果你有golang成立。否则,您可以将文件导入临时集合并使用您选择的语言进行合并,或者编写自己的导入实用程序。

以上是 mongoimport +点符号,具有CSV 的全部内容, 来源链接: utcz.com/qa/264236.html

回到顶部