用mongoose检查一个文件是否存在于mongodb中

我正在尝试使用mongodb作为数据库来创build一个nodejs应用程序。 我需要检查用户名是否存在于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) } } }); }; 

有没有其他的或简单的方法来执行此操作?

如果你问我,我会把整个逻辑与控制器分离开来,但是我不打算告诉你。 我会使用findOne因为它只能find一条logging。 如果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); }); };