2017-06-19 34 views
1

我有一个电子邮件字段设置为唯一,但它不是必需的。猫鼬领域不是必需但唯一

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

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

感谢

+0

是如何计算的默认值?该字段是什么类型的数据类型? – PeterVC

+0

这是一个字符串。我想我可以把字符串形式的随机数字放在里面? –

回答

1

使用稀疏唯一索引

如果文档没有一个字段的值, 索引条目该项目将在包括任何指标空。因此,在许多情况下,您会希望将唯一约束与 稀疏选项组合在一起。稀疏索引跳过索引字段缺少 的任何文档,而不是为索引条目存储空值。

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

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

+1

谢谢你!这是我正在寻找的 –