首页 > 解决方案 > 当导入的文档具有相同的 id 时替换 MongoDB 中的文档 (mongoimport)

问题描述

我正在尝试将mongoimportjsonarray 文件添加到我的 MongoDB。

我之前的导入使用了下面的命令,并且已经成功:

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

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

在此处输入图像描述

这是一个文档的结构。

我很担心,因为该_id字段不是ObjectId我手动标记的整数,而是我手动标记的整数,因此它不会将具有相同_id(但具有其他修改字段)的新文档视为同一对象并且不会覆盖它。

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

谢谢

标签: mongodbmongoimport

解决方案


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

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


推荐阅读