与mongodb中不区分大小写的完全匹配

时间:2019-07-17 07:10:21

标签: mongodb mongoose mongodb-query

我要匹配集合中的用户名。

User.findOne({ username: {$regex: new RegExp('^' + req.body.username, 'i')} }).select('_id').exec(function (err, user) {
                if (err) {
                    res.json({  "status": 0, "message": "Something went wrong" });
                } else {
                    if (user) {
                        res.json({ "status": 0, "message": "This username is already taken." });
                    } else {
                        res.json({ "status": 1, "message": "Username is valid" });
                    }
                }
            });

我已经在集合中记录了用户名“ vikash1”。我想检查用户名是否存在。 当我输入“ Vikash2”时,以上查询将返回“用户名已存在” 但是在这里,我输入“ vikash2”是不同的。 我想要完全匹配,但对现金不敏感。

1 个答案:

答案 0 :(得分:0)

User.findOne({ username: req.body.username }).collation({ locale: "en", strength: 2 }).exec(function (err, user) {
                if (err) {
                    res.json({  "status": 0, "message": "Something went wrong" });
                } else {
                    if (user) {
                        res.json({ "status": 0, "message": "This username is already taken.", "data": user });
                    } else {
                        res.json({ "status": 1, "message": "Username is valid" });
                    }
                }
            });
相关问题