Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用mongoose检查mongodb中是否存在文档_Node.js_Mongodb - Fatal编程技术网

Node.js 使用mongoose检查mongodb中是否存在文档

Node.js 使用mongoose检查mongodb中是否存在文档,node.js,mongodb,Node.js,Mongodb,我正在尝试使用mongodb作为数据库创建一个nodejs应用程序。我需要检查mongodb中是否存在用户名。如果用户名存在,它将输出“用户名不可用”,否则将列出该用户名的所有用户详细信息 var userSchema = require('../schemas/user'); exports.collect = function(req,res) { userSchema.find({ username: "bob" }).exec(function(err,display) {

我正在尝试使用mongodb作为数据库创建一个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
,因为这样只会找到一条记录。如果
用户
不可用,您将知道此用户名不可用。不要忘记,即使发生错误,您仍然希望输出“一些”数据,因为您不希望客户端等待它超时

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);
  });
};

可能是
display.length==0
比对照字符串检查空数组更简单谢谢!!我在寻找是否还有其他替代方法,比如内置函数:)但有一个疑问,我们不应该在末尾添加分号吗?