猫鼬中的唯一如果不是空检查
Posted
技术标签:
【中文标题】猫鼬中的唯一如果不是空检查【英文标题】:Unique if not null check in mongoose 【发布时间】:2017-04-07 04:41:47 【问题描述】:是否有一种内置的方式来表示如果字段不为空,则该字段应该是唯一的。例如,我希望用户拥有唯一的电话号码,但这不是必填字段。所以它可以为空,因此如果添加另一个用户而没有电话号码,它会打破唯一约束。
这几乎是同一个问题:mongoDB/mongoose: unique if not null 但对于新版本的 mongoose 和 mongodb,我想应该有更好的方法来实现这一点。
【问题讨论】:
您可以使用具有唯一约束的部分索引参考:docs.mongodb.com/v3.2/core/index-partial/… 【参考方案1】:如果您不喜欢像您提供的答案那样组合稀疏索引和唯一索引
db.users.ensureIndex( phone: 1 , unique: true, sparse: true );
您可以使用partial index,它没有在 mongoose 中实现,但可用作原生运算符。
db.users.createIndex(
phone: 1 ,
partialFilterExpression: phone: $exists: true
)
【讨论】:
以上是关于猫鼬中的唯一如果不是空检查的主要内容,如果未能解决你的问题,请参考以下文章