我遇到的情况是,我有一个用户架构,其中包含一个名为“用户名”的唯一字段。同时,mongo自动创建自己的唯一键“_id”。
我注意到,对于我的很多模式,我需要一组“用户名”和“ids”。有时这是相当多余的,所以我的问题是:
通过“_id”查找是否比查找“用户名”字段(假设是 10 个字符的字符串)更快?如果它们相同,是否可以使用我的唯一标识符 username 作为 _id 的值?
如果您的数据自然具有必需的唯一字段,那么使用该值作为您的_id.
只要字段数据的大小与 ObjectId(12 字节)相当,那么性能应该是相同的。10 个字符的字符串为 20 个字节,因此用户名的索引将占用更多内存,但可能不足以在性能方面产生差异。
由于您使用的是 Mongoose,您还可以创建一个虚拟字段(名为username),_id该字段也使用更具描述性的名称来公开该字段。
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |