为什么在我的代码中.find()运行if条件,当它在CRUD的数据库中找不到文档时

时间:2019-06-10 14:47:03

标签: mongodb

据我说,我的条件是当我登录并输入正确的密码时,数据库就会给我文档,但是如果我输入了错误的密码,它将进入其他条件并进行控制台-不在数据库中...,

但是当我输入错误的密码时,输出是不同的,否则不会继续执行其他条件,如果条件继续执行,则会为我提供空数组中的文档(例如.. [])

我想在找到文档时将其转为条件,否则将在其他条件下转入

//CRUD   
-----------------------------------------------------------
const userModel = require("../models/schema");

const userOperation = {
add(object,response){
    userModel.create (object,(err)=>{
        if(err){
            console.log("err in adding database.......");
        }
        else{
            console.log("user added............");
        }
    })
},

search(object,response){
    userModel.find(object,(err,docs)=>{
        if(err){
            console.log("nothing in database................");
            response.status(500).json({status:'E',message:'Error in DB During Find Operation'});
        }
        else{
        if(docs){
            console.log(docs);
            response.json(docs);
            console.log("user find in databse.......")
        }
        else{
            console.log("user not find in database...............")

        }
    }
    })

}
}
 module.exports= userOperation;



//SCHEMA
-----------------------------------------------------------------
const connection = require("../models/connection");
const schema = connection.Schema;
const userModel = new schema({
'name':{type:String,require:true, },
'email':{ type:String,require:true,},
'phone':{ type:Number,require:true,}
})

const userSchema = connection.model('damn',userModel);
module.exports =  userSchema;

1 个答案:

答案 0 :(得分:0)

您可以改为使用userModel.findOne(),这样,如果查询未找到任何用户,文档将返回null,否则,您仍然可以使用userMode.find(),而不仅仅是使用{ {1}}使用if(doc)