想测试在mongodb数据库中插入新文档的速度, 但是,当插入量非常大时,它会返回以下错误: “RangeError:超出最大调用堆栈大小” 谁能告诉我为什么我收到消息?
var counters2Schema = new mongoose.Schema({'_id': ObjectId, 'seq':String}, { versionKey: false, collection: 'counters' }),
var k = 100000;
testCUPwrite function (i) {
var MyObjectId = mongoose.Types.ObjectId;
MyObjectId = new MyObjectId();
var counters2Model = new mongoose.model("counters", counters2Schema);
new counters2Model({'seq': MyObjectId}). save ();
console.log ('teste_' + MyObjectId);
if (i <k) {
i + +;
setTimeout (testCUPwrite (i), 1);
}
}
testCUPwrite (0);
谢谢
答案 0 :(得分:0)
这一行:
setTimeout (testCUPwrite (i), 1);
没有做你想象的那样。这是直接执行当前堆栈中的testCPUWrite
函数。它没有像您想象的那样使用setTimeout
。像
setTimeout(testCUPwrite.bind(null, i), 1);
可能会让你去。