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