mongodb中,如何不区分大小写查找?
发布于 10 年前 作者 blueandhack 13988 次浏览 最后一次编辑是 8 年前

如两个相同的用户名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 对的,比如

  1. 用户输入的包含大小写的存为 showname
  2. 将 showname downcase 存为 username
回到顶部