如何在具有 1M 条记录的 mongodb 中优化更新插入批处理查询



我有一个不断下载数据的脚本,我正在将数据保存到MongoDB中。 每个文档都有一个关联的 ID。 如果我收到相同的文档,我只更新一部分。 如果 id 是新的,我会添加整个文档。

现在的问题是,当MongoDB中没有文档时,它运行流畅,但是当我在mongo中有大约30k个文档时,性能开始下降。


var batch = database_object.collection(channel_basic_data_collection).initializeUnorderedBulkOp({useLegacyOps: true}); 
batch.find(query).upsert().updateOne(update_OPERTATION);
if (count > 1000 ) 
{ 
batch.execute(function (err, result) {
if (err){
errorLog(err)
operation_started = false
return
}
batch = database_object.collection(channel_basic_data_collection).initializeUnorderedBulkOp({useLegacyOps: true});
});
}

我需要插入 1.5M 个文档,对于每个新文档,我需要搜索整个集合。

在用于查询的字段中创建索引。

最新更新