我有一个电子邮件字段,我想要唯一的电子邮件。我也希望有一个空白领域的可能性。如果电子邮件为空/空/不存在,我不希望它检查唯一性。Mongoose/keystonejs:唯一的字段,除非字段为空
这里是梯形定义我的列表模式:
Book.add({
number: { type: Types.Number },
email: { type: Types.Email, initial: true, index: true, unique: true },
token: { type: Types.Text },
title: { type: Types.Text, initial: true },
author: { type: Types.Text, initial: true },
name: { type: Types.Text, initial: true },
dedication: { type: Types.Textarea, initial: true },
image: { type: Types.CloudinaryImage }
});
梯形公开猫鼬的模式,这样我就可以访问。我可以添加一个自定义的验证,除非字段为空,否则我会希望得到更优雅的东西。
我已经有足够的数据,我不知道这是否使索引的东西更复杂。
我确实尝试过使用稀疏:true,但那对我没有用。 – Tom
可能值得在空数据库中首先尝试它,只是为了检查它不是你已经有数据的事实。如果没有,它可能必须是一个预存储钩子。 –