mongodb - 电子邮件作为 MongoDB 用户集合中的 _id

标签 mongodb uniqueidentifier unique-index

我在 MongoDB 中有一个用户集合。 _id 目前是标准的 MongoDB 生成的 ObjectId。我还有一个针对必填“电子邮件”字段的唯一键约束。这似乎是一种浪费。

有什么理由不应该放弃“电子邮件”字段并将该数据设为 _id 字段?

最佳答案

我已经阅读了 Neil 的回答并且我部分同意它(而且我真的对“显着的性能提升”持怀疑态度)。我在您的问题中没有发现的一件事是“您打算如何处理这封电子邮件”。您是要通过它搜索还是只是保存在那里?之前的回答中没有提到的最重要的事情之一:它会被改变吗?

使用您的系统的人将要更改他们的电子邮件(丢失/不再使用)的情况并不少见。如果你将你的 _id 作为他们的电子邮件,你将无法轻松更改它(你不能在 mongo 中修改 _id)。在这种情况下,您将需要复制、删除和添加新元素(这不是原子的)。

所以我认为这是不这样做的一个重要原因。但是您需要决定是否允许人们更改电子邮件地址。

关于mongodb - 电子邮件作为 MongoDB 用户集合中的 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400560/

相关文章:

c# - 电子邮件的唯一标识是什么?

sql-server - sql server : Unique constraint generates unique key and unique index

oracle - 强制执行唯一/主键 - 删除索引

node.js - 使用 NodeJs 中的中间件调整图像大小

Java Spring Boot 应用程序无法检测到 Mongodb 存储库

ruby-on-rails - Encoding::UndefinedConversionError ("\xE2"从 ASCII-8BIT 到 UTF-8):基于 ROR + MongoDB 的应用程序中的错误

android - 通过 google-play 帐户识别用户

node.js - 使用全局变量在模块之间共享数据库

sql-server-2005 - 将计数 > 1 的表连接到自身

indexing - 在EdgeDB中定义唯一索引