Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何使用mongoimport仅更新不存在的文档并删除不存在的旧文档_Mongodb - Fatal编程技术网

Mongodb 如何使用mongoimport仅更新不存在的文档并删除不存在的旧文档

Mongodb 如何使用mongoimport仅更新不存在的文档并删除不存在的旧文档,mongodb,Mongodb,我正在使用mongoimport导入一堆JSON,我正在寻找一种方法 到 仅导入不存在的记录 保留匹配的记录 删除旧记录(不在新插入的JSON中) 基本上,您只想在导出中保留集合,对吗?如果是,请查看以下选项: --drop修改恢复过程,以便在从数据库恢复集合之前从目标数据库中删除每个集合 转储备份 --upsert修改导入过程以更新数据库中的现有对象(如果它们与导入的对象匹配),同时插入所有其他对象 对象 如果未使用--upsertFields指定一个或多个字段 mongoimport将基于_

我正在使用
mongoimport
导入一堆JSON,我正在寻找一种方法 到

  • 仅导入不存在的记录
  • 保留匹配的记录
  • 删除旧记录(不在新插入的JSON中)

  • 基本上,您只想在导出中保留集合,对吗?如果是,请查看以下选项:

    --drop修改恢复过程,以便在从数据库恢复集合之前从目标数据库中删除每个集合 转储备份

    --upsert修改导入过程以更新数据库中的现有对象(如果它们与导入的对象匹配),同时插入所有其他对象 对象

    如果未使用--upsertFields指定一个或多个字段 mongoimport将基于_id字段进行升级


    更多关于

    的信息我已经尝试了这些选项;但是我不想删除所有现有的数据元素,upsert with filed将更新匹配的文档;我只想删除不在新数据集中的数据。这里的问题是,我在数据库集合中有一些文档,我从一个源(包含旧的、新的和更新的数据)获取更新的数据,现在需要在集合中更新相同的数据。如何使用mongoimport(不使用drop)实现这一点?如果源数据是最新的(包含新的、更新的和删除的数据),那么为什么不能使用
    drop
    ?您需要手动编写一些代码(通过您喜爱的编程语言)来实现,因为它超出了mongoimport的功能。