检查使用猫鼬是否存在于mongodb中的文档

问题描述:

我正在尝试使用mongodb作为数据库来创建nodejs应用程序。我需要检查用户名是否存在于mongodb中。如果用户名存在,它将输出“用户名不可用”,否则将使用该用户名列出所有用户详细信息。检查使用猫鼬是否存在于mongodb中的文档

var userSchema = require('../schemas/user'); 

exports.collect = function(req,res) { 
    userSchema.find({ username: "bob" }).exec(function(err,display) { 
     if(err){ 
      console.log(err); 

     } 
     else 
     { 
      if(display=='[]'){ 
       res.send("username not available"); 
      } 

      else{ 
       res.send(display) 
      } 

     } 

    }); 
}; 

是否有任何替代或简单的方法来执行此操作?

+2

可能是'display.length === 0'比单纯检查空字符串 – vanadium23

如果你问我,我会从控制器中分离出整个逻辑,但我不打算告诉你。我会使用findOne,因为它只能找到一条记录。如果user不可用,您将知道该用户名不可用。不要忘记,即使发生错误,您仍然希望输出“一些”数据,因为您不希望客户端等到它超时。

var userSchema = require('../schemas/user'); 

exports.collect = function(req,res) { 
    userSchema.findOne({username: "bob"}).exec(function(err, user) { 
    if (err) { 
     console.log(err); 

     // Handle the error properly here, we should not continue! 
     return res.sendStatus(500); 
    } 

    if (!user) { 
     return res.send("username not available"); 
    } 

    // Don't know what you want to do with it, I just display it like this 
    return res.json(user); 
    }); 
}; 
+0

谢谢!我正在寻找是否有其他替代方法,如内置函数:)但有人怀疑,我们不应该在最后添加分号吗? – nitroman

+0

对不起,是的。 –