2013-10-17 60 views
0

我正在使用Node,Express和MongoDB(與Mongoskin)構成webbapp。在MongoDB中聲明唯一性

新客戶帳戶通過一個web表單創建,需要輸入諸如「本公司」,「聯繫人」,「電子郵件」等等......

當創建新的客戶也有一些字段必須在保存到數據庫時是唯一的。 這種輸入是:'公司''彈頭''電子郵件'

公司必須是唯一的。 Slug是從公司名稱生成的,也需要是唯一的。

Ex。 「咖啡廳Rosegarden的」「咖啡Rosegarden的」是兩個不同的公司名稱,但會產生相同的毛坯:「咖啡廳,在Rosegarden」

電子郵件。我認爲這需要獨特...但我其實不確定

現在我有三個單一的唯一索引在這些領域。

問題1:索引是否唯一(最好?)方式來斷言字段的唯一性?

問題2:我在使用複合索引,它如何處理唯一性?例如,我可以說,電子郵件只能與一個特定的公司名稱結合使用纔是唯一的嗎?

回答

1

是的,在字段中添加唯一索引幾乎​​總是確保其唯一性的最佳方式。

當使用複合索引時,MongoDB確保集合中的每個文檔都有唯一的組合字段值。因此,如果您只有companyemail以上的複合獨特索引,則只要兩者的組合是唯一的,就可以擁有多個具有相同companyemail的文檔。