该问题被错误地标记为重复。这是一个不同的情况。
我有一个包含大约27000个用户的数据库。我想从csv文件中插入更多用户。基本上每个用户可以通过电子邮件Id唯一标识。我想再向数据库输入43000封这样的电子邮件。我打算用
Users.insertMany(emailArray,options,callback)
我希望如果电子邮件ID已经存在,则不应该将记录输入数据库。检查数据库中的每个电子邮件ID并单独更新似乎效率低下。 insertMany
似乎更快。我可以使用insertMany
吗?
当前方法::
csv()
.fromFile(path)
.on('json', (jsonObj) => {
var email = jsonObj.email;
delete jsonObj.email;
var profile = jsonObj;
User.addEmails(email, profile, function (err, res) {
if (err == "User already exists") {
console.log("user already exists");
} else {
console.log(res);
}
})
})
.on('done', (error) => {
console.log('end');
fs.unlink(path);
callback(null, "Done");
})
添加电子邮件功能
module.addEmails = function(email, profile, callback){
User.findOne({email: email}, function(err, res){
if(err)
throw err;
else if(res){
callback("User already exists");
}
else{
User.create({email: email, profile: profile},callback);
}
})
}