mongodb中,如何不区分大小写查找?
如两个相同的用户名CNODE和cnode 前者已注册,将要注册后者 在node中
User.findOne({username: {$regex: username, $options: "i"}}, {username: 1, email: 1, create: 1, head: 1}, function (err, user) {
callback(err, user);
});
但是这么写的话cn和cno还有cnod都会算作已注册过,如何写才可以?
5 回复
存的時候冗余一個已經轉換為小寫的字段做查詢用,在寫少查多的的情況下很有用。
非常感谢,一时没想起来,感谢你的方法!
$regex: ‘^’ + username + ‘$’ 也可以吧?不过实时生成 regex 很容易被用户调戏
我查了查,好像只能用正则来做了。不懂效率会不会慢。
@blueandhack 对的,比如
- 用户输入的包含大小写的存为 showname
- 将 showname downcase 存为 username