我在 MongoDB 中有一个用户集合。 _id 目前是标准的 MongoDB 生成的 ObjectId。我还有一个针对必填“电子邮件”字段的唯一键约束。这似乎是一种浪费。
有什么理由不应该放弃“电子邮件”字段并将该数据设为 _id 字段?
最佳答案
我已经阅读了 Neil 的回答并且我部分同意它(而且我真的对“显着的性能提升”持怀疑态度)。我在您的问题中没有发现的一件事是“您打算如何处理这封电子邮件”。您是要通过它搜索还是只是保存在那里?之前的回答中没有提到的最重要的事情之一:它会被改变吗?
使用您的系统的人将要更改他们的电子邮件(丢失/不再使用)的情况并不少见。如果你将你的 _id
作为他们的电子邮件,你将无法轻松更改它(你不能在 mongo 中修改 _id
)。在这种情况下,您将需要复制、删除和添加新元素(这不是原子的)。
所以我认为这是不这样做的一个重要原因。但是您需要决定是否允许人们更改电子邮件地址。
关于mongodb - 电子邮件作为 MongoDB 用户集合中的 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400560/