【问题标题】:Assert uniqueness in MongoDB在 MongoDB 中断言唯一性
【发布时间】:2013-10-17 21:32:23
【问题描述】:

我正在为 webbapp 使用 Node、Express 和 MongoDB(带有 Mongoskin)。

新客户帐户是通过网络表单创建的,需要输入诸如“公司”、“联系人”、“电子邮件”等...

创建新客户端时,有些字段在保存到数据库时必须是唯一的。 这些输入是:'Company''Slug''Email'

公司必须是独一无二的。 Slug 是从公司名称生成的,也需要是唯一的。

例如。 'Café Rosegarden''Cafe Rosegarden' 是两个不同的公司名称,但会生成相同的 slug: 'cafe-rosegarden '.

电子邮件。我认为这需要是独一无二的......但我实际上不确定

现在我在这些字段上有三个单一的唯一索引。

问题 1:索引是唯一(最好的?)在字段上断言唯一性的方法吗?

问题 2: 我使用复合索引,它如何处理唯一性?例如,我可以说电子邮件只需与一个特定的公司名称相结合就可以是唯一的吗?

【问题讨论】:

    标签: node.js mongodb express mongoskin


    【解决方案1】:

    是的,向字段添加唯一索引几乎​​总是确保其在集合中唯一性的最佳方式。

    当使用复合索引时,MongoDB 确保集合中的每个文档都具有唯一的字段值组合。因此,如果您只有一个超过 companyemail 的复合唯一索引,那么您可以拥有多个具有相同 companyemail 的文档,只要两者的组合是唯一的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多