【发布时间】:2022-01-07 04:40:13
【问题描述】:
我正在尝试将数据保存在 MongoDB 中。当数据不为空时,我想存储唯一数据。但是,我想在唯一标识符中允许多个空值。
我的示例架构:
@Schema()
export class Contact extends Document {
@Prop({ unique: true, sparse: true, require: true })
email: string;
@Prop({ default: '+1' })
countryCode: string;
@Prop({ unique: true, sparse: true })
mobile: string;
}
在这种情况下,不需要手机号码。用户可以在提供或不提供手机号码的情况下添加他们的联系信息。如果用户发送的手机号码应该是唯一的。所以,我需要在mobile 字段中允许多个null 值。但是,当用户提供任何手机号码时,该字段应该是唯一的。
空条目似乎获得值null,因此每个没有mobile 的条目都会因unique 标识符而崩溃。
有没有办法从数据库层或者应用层解决这个问题?
我正在使用 NestJS 开发我的 API。
【问题讨论】:
-
检查nestjs验证:docs.nestjs.com/techniques/validation