0

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

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

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

于 2013-10-17T13:32:23.847 回答