【发布时间】:2017-07-30 18:30:38
【问题描述】:
我有一个非常简单的 Mongo 数据库,用于个人 nodejs 项目。基本上就是注册用户的记录。
我最重要的字段是大约 15 到 20 个字符的字母数字字符串(我们称之为 user_id 并假设它不能只是数字)。
现在最重要的操作是检查用户是否存在或不存在。我通过查询db.collection.find("user_id": "testuser-123")来做到这一点
如果没有返回记录,我会保存用户以及其他一些不太重要的数据,例如名字、姓氏和注册日期。
现在我显然想让user_id 成为索引。
我阅读了official MongoDB Manual 上的索引教程。
首先我尝试设置text index,因为我认为这适合字母数字字段。我也尝试设置language:none。但事实证明,我的查询在 12 毫秒内返回,而不是 6 毫秒,没有索引。
然后我尝试设置像{user_id: 1} 这样的有序索引,但我没有看到任何区别(它只适用于数值吗?)。
谁能推荐我这种情况下最好的索引类型或最快的查询来检查用户是否存在?或者也许 MongoDB 不是最适合这个的?
【问题讨论】:
标签: mongodb database-design database