【问题标题】:Unique if not null check in mongoose猫鼬中的唯一如果不是空检查
【发布时间】:2017-04-07 04:41:47
【问题描述】:

是否有一种内置的方式来表示如果字段不为空,则该字段应该是唯一的。例如,我希望用户拥有唯一的电话号码,但这不是必填字段。所以它可以为空,因此如果添加另一个用户而没有电话号码,它会打破唯一约束。

这几乎是同一个问题:mongoDB/mongoose: unique if not null 但对于新版本的 mongoose 和 mongodb,我想应该有更好的方法来实现这一点。

【问题讨论】:

标签: mongodb mongoose mongoose-schema


【解决方案1】:

如果您不喜欢像您提供的答案那样组合稀疏索引和唯一索引

db.users.ensureIndex({ phone: 1 }, { unique: true, sparse: true });

您可以使用partial index,它没有在 mongoose 中实现,但可用作原生运算符。

db.users.createIndex(
   { phone: 1 },
   { partialFilterExpression: { phone: { $exists: true } } }
)

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 2020-10-03
    • 2018-11-25
    • 2016-01-07
    • 2017-05-08
    • 2022-01-17
    • 2013-05-08
    • 2014-07-29
    • 1970-01-01
    相关资源
    最近更新 更多