MongoDB批量插入已存在许多文档的位置

 昀尧约_146 发布于 2023-01-31 18:08

我有一个较小的(~100)小数据文件(每个可能有10个字段)插入到MongoDB中.但是它们中的许多(可能全部,但通常是80%左右)已经存在于DB中.这些文件代表了未来几个月即将发生的事件,我每隔几天就会更新一次数据库.因此大多数事件已经在那里.

任何人都知道(或想猜)是否更有效:

    进行批量更新但是使用continueOnError = true,例如

db.collection.insert(myArray, {continueOnError: true}, callback)

    单独插入,首先检查_ID是否存在?

    首先做一个大的删除(类似db.collection.delete({_id: $in : [array of all the IDs in my new documents] }),然后批量插入?

我可能会做#1,因为那是最简单的,我不认为100个文件都那么大所以它可能无关紧要,但如果有10,000个文件?我正在使用node.js驱动程序在JavaScript中执行此操作.我的背景是在Java中,异常是耗时的,这是我要问的主要原因 - "continueOnError"选项是否耗时?

补充:我不认为"upsert"是有道理的.这是为了更新单个文档.就我而言,代表即将发生的事件的单个文档没有改变.(好吧,也许是,这是另一个问题)

发生的事情是会添加一些新文件.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有