【发布时间】:2019-07-17 19:31:23
【问题描述】:
我想匹配集合中的用户名。
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”就不同了。 我想要完全匹配但对现金不敏感。
【问题讨论】:
-
在此处使用排序规则stackoverflow.com/questions/52015712/…...
User.findOne({ username: req.body.username }).collation({ locale: "en" }) -
同时指定强度选项。
.collation({ locale: "en",strength: 2 }) -
User.findOne({ username: req.body.username }).collation({ locale: "en",strength: 2 }).select('_id').exec(function (err , 用户) { });它不起作用@ashh
-
不可以,我已经测试过了。删除
select并再次检查。 -
删除后选择它正在工作,谢谢
标签: mongodb mongoose mongodb-query