因node-mongoskin是异步操作的,当我如下执行批量杯具就出现了:
for(var i=0;i<results.length;i++){
var result=results[i];
var name=result['name']
db.user.findOne({'name':name},function (err,user_result) {
if(user_result==null){
db.user.insert({'name':name});
}
});
}
运行结果是:如果有10条记录就会在数据库添加了10条最后一个name相同的记录。
for(var i=0;i<results.length;i++){
var result=results[i];
var name=result['name']
db.user.findOne({'name':name},function (err,user_result) {
if(user_result==null){
db.user.insert({'name':name});
}
});
}
运行结果是:如果有10条记录就会在数据库添加了10条最后一个name相同的记录。