我四处寻找找到使用Mongoose将大量文档插入MongoDB的正确解决方案。
我目前的解决方案如下:
MongoClient.saveData = function(RecordModel, data, priority, SCHID, callback){
var dataParsed = parseDataToFitSchema(data, priority, SCHID);
console.log("Model created. Inserting in batches.");
RecordModel.insertMany(dataParsed)
.then(function(mongooseDocuments) {
console.log("Insertion was successful.");
})
.catch(function(err) {
callback("Error while inserting data to DB: "+err);
return;
})
.done(function() {
callback(null);
return;
});
}
但在我看来还有其他提供的解决方案。像这个: http://www.unknownerror.org/opensource/Automattic/mongoose/q/stackoverflow/16726330/mongoose-mongodb-batch-insert
使用collection.insert
。这与Model.insertMany
同样适用于更新,我之前的问题:What is the right approach to update many records in MongoDB using Mongoose
询问如何使用由_id
定义的Mongoose更新大块数据。答案建议使用collection.bulkWrite
,而我的印象Model.insertMany
也可以这样做。