断言MongoDB中的唯一性

时间:2013-10-17 12:33:46

标签: node.js mongodb express mongoskin

我正在使用Node,Express和MongoDB(使用Mongoskin)进行webbapp。

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

创建新客户端时,有些字段在保存到数据库时必须是唯一的。 这些输入包括:'公司''Slug''电子邮件'

公司需要独一无二。 Slug 是根据公司名称生成的,也需要是唯一的。

实施例。 'CaféRosegarden''Cafe Rosegarden'是两个不同的公司名称,但会产生相同的 slug: 'cafe-rosegarden “

电子邮件。我认为这需要独特......但我实际上并不确定

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

问题1:索引是否是唯一(最好?)方式断言字段的唯一性?

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

1 个答案:

答案 0 :(得分:1)

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

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