首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >高效查询大小写不敏感的MongoDB (通过pymongo实现)

高效查询大小写不敏感的MongoDB (通过pymongo实现)
EN

Stack Overflow用户
提问于 2011-06-07 22:14:54
回答 2查看 17.2K关注 0票数 24

我目前正在创建一个python (金字塔)的网站,这需要用户注册和登录。系统允许用户选择用户名,可以是大写字母、小写字母和数字的混合。

当确保两个用户不会意外地共享相同的用户名时,问题就出现了,即在我的系统中,'randomuser‘应该与'randomUser’或'RandomUser‘相同。

不幸的是(在这种情况下),因为Mongo将字符串存储为区分大小写,所以可能会有许多用户使用相同的用户名。

我知道在mongo中查询不区分大小写的字符串的方法:

代码语言:javascript
复制
db.stuff.find_one({"foo": /bar/i});

然而,这在我使用pymongo的query方法中似乎不起作用:

代码语言:javascript
复制
username = '/' + str(username) + '/i'
response = request.db['user'].find_one({"username":username},{"username":1})

这是构建pymongo查询的正确方式吗(我想不是)?

只要创建或登录了用户帐户,就会使用此查询(因为它必须检查用户名是否存在于系统中)。我知道这不是最有效的查询,所以如果它只用于登录或帐户创建,那么它应该有关系吗?相反,更可取的做法是强制用户只选择小写用户名(完全不需要大小写敏感的查询)吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6266555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档