【问题标题】:Mongoose field not required but unique [duplicate]猫鼬字段不是必需的但唯一的[重复]
【发布时间】:2017-11-22 04:33:51
【问题描述】:

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

问题在于,如果用户没有输入任何内容,Mongoose 会在其中输入“null”。这会导致重复,因为每个未输入电子邮件字段的用户都将分配给它“null”。

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

谢谢

【问题讨论】:

  • 默认值如何计算?字段是什么类型的数据?
  • 它是一个字符串。我想我可以在里面放一个字符串形式的随机数?

标签: javascript node.js mongoose


【解决方案1】:

使用稀疏唯一索引

如果文档没有字段的值,则索引条目 该项目在包含它的任何索引中都将为空。因此,在许多 在您希望将唯一约束与 稀疏选项。稀疏索引跳过任何丢失的文档 索引字段,而不是为索引条目存储 null。

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

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

【讨论】:

  • 谢谢你!这就是我要找的
  • MongoDB cannot create a unique index on the specified index field(s) if the collection already contains data that would violate the unique constraint for the index.
猜你喜欢
  • 2020-09-19
  • 2023-03-14
  • 2021-08-27
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 2015-02-24
相关资源
最近更新 更多