Node.js 如何在更新多个对象时提高MongoDb性能

Node.js 如何在更新多个对象时提高MongoDb性能,node.js,mongodb,performance,import,Node.js,Mongodb,Performance,Import,我试图读取一个JSON文件,该文件包含大约200.000行,每行包含一个小JSON文档,格式如下: { <some key properties>, <some 2-3 properties>, // unimportant for this question updateCounter1: -1, updateCounter2: 0, updateCounter3: 3 } 因此,我使用$inc操作符相对增加/减少输入JSON给出的D

我试图读取一个JSON文件,该文件包含大约200.000行,每行包含一个小JSON文档,格式如下:

{
   <some key properties>,
   <some 2-3 properties>,   // unimportant for this question
   updateCounter1: -1,
   updateCounter2: 0,
   updateCounter3: 3
}
因此,我使用
$inc
操作符相对增加/减少输入JSON给出的DB值,并对其余属性使用
$set
。 上面的代码是针对输入文件中的每一行执行的,我使用
async.eachSeries
逐个导入每一行

现在的问题是,虽然它似乎起作用,但它需要很长时间才能完成。我大约半小时前就开始导入了,现在仍在导入。所以很可能我刚刚写了一些非常糟糕的代码


有谁能帮我改进导入逻辑,使处理更快吗?

你想过JSON流吗?不知道那是什么。这对将对象插入MongoDB有什么帮助?输入文件在1-2秒内被解析,但将JS对象插入MongoDB需要的时间最多。请尝试将其与。
{
   <some key properties>,
   <some 2-3 properties>,
   counter1: 3748,
   counter2: 722,
   counter3: 2848
}
         let item = {
            query: {
               refSpHash: ...,
               gender: ...,
               age: ...,
               state: ...,
               district:  ...
            },
            set: {
               refSp: ...,
               msgSp: ...
            },
            counters: {
               counter1: 1,
               counter2: -2,
               counter3: 4
            }
         };

         // (....)

         let update = { $set: _.assign({}, item.set, item.query), $inc: item.counters };

         collection.updateOne(item.query, update, { upsert: true }, (err) => { ... });