Mongodb Mongo查询总是返回数据库中存在的值,但它不存在
我试图在mongodb中查询名称字段,使用下面的代码,我总是得到值重复的响应Mongodb Mongo查询总是返回数据库中存在的值,但它不存在,mongodb,mongoose,Mongodb,Mongoose,我试图在mongodb中查询名称字段,使用下面的代码,我总是得到值重复的响应 var checkUserName = function (userName, email, res){ User.findOne({ name : userName }, function () { if(userName && typeof userName !== 'undefined'){ res.send("duplicate");
var checkUserName = function (userName, email, res){
User.findOne({ name : userName }, function () {
if(userName && typeof userName !== 'undefined'){
res.send("duplicate");
}else{
checkEmail(email);
}
});
}
您当前完全忽略了数据库中的答案,只是再次检查您的输入。这是行不通的。Mongoose将查询的答案作为回调函数的第二个参数返回(第一个参数总是用来表示错误)-请尝试以下操作:
var checkUserName = function (userName, email, res){
User.findOne({ name : userName }, function (err, userFromDb) {
if (err) {
console.log("there was an error: " + err;
return res.send("err: " + err.message);
}
if(userFromDb) {
res.send("duplicate");
} else {
checkEmail(email);
}
});
}
我是mongo的新手,但我认为如果(userName&&typeof userName!=='undefined')总是会告诉你真的。。就我所知。。findOne只会给你带来一个结果,即使你有多个。。。所以也许mongo有一些方法来解决这个问题,或者把所有的东西都拿来,并使用长度属性。。。