当导入的文档具有相同的ID(mongoimport)时替换MongoDB中的文档

时间:2019-11-26 06:26:50

标签: mongodb mongoimport

我正在尝试将jsonarray文件mongoimport到我的MongoDB。

我以前的导入使用了以下命令,并成功完成了

mongoimport.exe --host <host> --db <db> --collection <collection> --type json --file <file> --jsonArray --authenticationDatabase admin --ssl --username <id> --password <pw>

这一次,我尝试导入另一个包含相同结构化文档的jsonarray,但是其中一些与MongoDB中已经存在的某些文档具有相同的_id

enter image description here

这是文档的结构。

我之所以感到困惑,是因为_id字段不是ObjectId而是我手动标记的整数,因此它不会考虑具有相同_id的新文档(但会考虑其他文档)修改的字段)作为同一对象,并且不会覆盖它。

我该如何覆盖与导入的文档具有相同_id的文档(当然,还要添加不与数据库中任何文档重叠的新文档)?

谢谢

1 个答案:

答案 0 :(得分:0)

我应该更仔细地阅读文档。

使用--mode upsertmongoimport将数据库中与导入文件中的文档匹配的现有文档替换为导入文件中的文档。照常插入与数据库中现有文档不匹配的文档。默认情况下,mongoimport根据_id字段匹配文档。使用--upsert字段指定要匹配的字段。