【发布时间】:2020-02-21 22:00:26
【问题描述】:
我对在 MongoDB 中强制字段唯一性时的当前最佳实践有疑问。
例如,假设我正在使用注册用户,并且我想强制每个用户都需要有一个唯一的电子邮件地址。我有 3 个选项(#3 与其他选项不互斥):
- 将
_id字段覆盖为电子邮件地址 - 在
emailAddress字段上创建唯一索引,保持_id字段不变(且未使用) - 确保 API 在
emailAddress字段中插入数据库之前检查重复项
我认为#3 是必不可少的,不管#1 和#2,但我还应该怎么做呢?
我是否也应该将 _id 字段覆盖为电子邮件地址 (#1),因为我不需要 2 个唯一字段,还是应该在 emailAddress 上创建唯一索引并将 _id 字段保留为是(#2)?也许两者都不是?
每个选项的优点/缺点是什么?
【问题讨论】:
标签: mongodb