CNode

mongodb中,如何不区分大小写查找?

Bblueandhack发布于12 年前最后回复12 年前5 回复14449 浏览0 收藏

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

J
jiangzhuo#1·12 年前

存的時候冗余一個已經轉換為小寫的字段做查詢用,在寫少查多的的情況下很有用。

A
alsotang#2·12 年前

我查了查,好像只能用正则来做了。不懂效率会不会慢。

A
alsotang#3·12 年前
引用 jiangzhuo存的時候冗余一個已經轉換為小寫的字段做查詢用,在寫少查多的的情況下很有用。

@blueandhack 对的,比如

  1. 用户输入的包含大小写的存为 showname
  2. 将 showname downcase 存为 username
D
dotnil#5·12 年前

$regex: '^' + username + '$' 也可以吧?不过实时生成 regex 很容易被用户调戏

参与回复
登录后即可参与回复。登录