2013-08-16 79 views
0

希望测试在数据库中插入新文档的速度mongodb, 但是,当插入量非常大时,它将返回以下错误: “RangeError:Maximum call堆栈大小超过“ 谁能告诉我为什么我收到的消息?RangeError:超出最大调用堆栈大小Nodejs mongoose

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

这条线:

setTimeout (testCUPwrite (i), 1); 

是不是做你认为它是。直接执行当前栈中的testCPUWrite函数。它不像你所想的那样使用setTimeout。类似于

setTimeout(testCUPwrite.bind(null, i), 1); 

可能会让你走。

相关问题