我会尽量简洁——即使在异步调用 save() 部分时,Mongoose 似乎也不会保存记录,直到整个脚本结束:
var reallyBigData = require('./data.json');
var importData = function(data) {
var newObj = new Obj; // Mongoose Object
newObj.x = data.x;
newObj.save();
};
this.on('importData', importData);
for(var i in reallyBigData) {
this.emit('importData', reallyBigData[i]);
};
这是一个粗略的简化,但你明白了。当我运行脚本并查询 Mongo 时,我在脚本运行时看不到任何记录。如果我将数量限制为 30,然后导入它们,它会快速完成,然后我会看到记录。
为什么 Mongoose 在脚本执行时不保存每条记录?