在mongodb上存储数据之前,需要检查用户名和电子邮件是否存在

User.find({username : username}, function (err, docs){ if (docs.length){ console.log(docs.length); }else{ console.log('Insert'); } }); 

现在我能够检查用户名,但不是两个。 我的查询是用户名或电子邮件,如果存在然后显示消息,用户名是存在的或电子邮件存在..我有一个工作函数,以存储数据到数据库

尝试$or操作符。

  User.find({$or: [ {email: req.body.email}, {username: req.body.username} ]}, function(err, docs) { //do anything //if(email) is matched{ console.log("Email already taken ");} //else if(username) is matched{ console.log("Username already taken")} else{ //call Update function } }); 
 User.find({$or: [{email: email},{username: username}]}, function (err, docs) { if (docs.length!=0){ //console.log(req.body.email); // Check record has same username as you are using in find if(docs[0].username == username){ //console.log(docs[0].email); //console.log(docs[0].username); //console.log(docs[0].username+'__'+username); console.log("username Already exist"); } // Else Check record has same email as you are using in find else if(docs[0].email == email){ console.log("Email Already exist"); } }else{ console.log('Insert'); } }); 

在这两种情况下,只有一个问题是在“用户名已被占用”的第一个条件下返回的。