如何使用mongoose在mongoDb中编写case语句

时间:2017-04-10 12:50:28

标签: node.js mongodb mongoose mongoose-schema

这里我使用mongoose作为我的Mean应用程序,它包含nodejs,expressjs和angularjs。

我的问题是我需要使用不同的查找条件并根据发送错误信息或数据

现在我使用如下

User.findOne({ Email: req.body.Email }, (err, user) => {
                if (err) { return done(err); }
                if (!user) {
                    return res.json("Account with that email address does not exist.");
                }

mongoose schema

const userSchema = new mongoose.Schema({
    FirstName: String,
    LastName: String,
    Email: { type: String, unique: true },
    UserName: String,
    Password: String,
    PhoneNumber: String,
    EmailVerified : Boolean,
    AdminApproved : Boolean   
}, { versionKey: false });

但现在我的电子邮件已经过验证和管理员批准等字段。

在Ms-Sql中我使用了像

这样的case语句
  1. 其中(电子邮件不存在)然后show Email not exist
  2. 其中(电子邮件在线但未经过电子邮件验证),然后是show please verify email
  3. 其中(提供电子邮件,经过电子邮件验证但未经过管理员批准),然后show wait for admin process
  4. 任何人都可以mongoDB使用mongoose如何帮助我实现相同的操作。

1 个答案:

答案 0 :(得分:1)

到目前为止你已经做得很好,你只需要再做几次检查。

试试这个:

User.findOne({ Email: req.body.Email }, (err, user) => {
    if (err) { return done(err); }
    else if (!user) {
        return res.json("Account with that email address does not exist.");
    }
    else if(!user.EmailVerified){
        return res.json("Please verify your email");
    }
    else if(!user.AdminApproved){
        return res.json("Wait for admin process, Not Admin approved yet!");
    }
})