mongoose领域不是必需的,但独特的

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

问题是,如果用户没有input任何东西,Mongoose会把“null”放在里面。 这会导致重复,因为没有input电子邮件字段的每个用户将分配“null”。

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

谢谢

使用稀疏的唯一索引

如果文档没有字段值,那么该项目的索引条目在包含它的索引中将为空。 因此,在许多情况下,您会希望将唯一约束与稀疏选项相结合。 稀疏索引跳过缺less索引字段的任何文档,而不是为索引条目存储空值。

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

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