猫鼬领域不是必需的,但却是独特的

时间:2017-06-19 20:26:30

标签: javascript node.js mongoose

我将电子邮件字段设置为唯一,但不是必需的。

问题是如果用户没有输入任何东西,Mongoose会在其中输入“null”。这会导致重复,因为每个未输入电子邮件字段的用户都会为其分配“null”。

避免这种情况的标准做法是什么?

由于

1 个答案:

答案 0 :(得分:4)

使用稀疏唯一索引

  

如果文档没有字段值,则索引条目为   该项在包含它的任何索引中都将为null。因此,在很多方面   你想要将唯一约束与   稀疏选项。稀疏索引会跳过任何缺少的文档   索引字段,而不是为索引条目存储null。

db.collection.createIndex( { a: 1, b: 1 }, { unique: true, sparse: true } )

更多信息:https://docs.mongodb.com/v3.0/tutorial/create-a-unique-index/