猫鼬:唯一字段(如果它不是空字符串或空字符串)



所以,我有以下模式:

const Players = new mongoose.Schema({
discordID: {
type: String,
unique: true,
required: function () {
return typeof this.discordID !== "string" && this.discordID !== null
}
})

我的观点是使discordID独一无二,但前提是它不null""

我听说过稀疏,但它似乎没有像我想要的那样工作。每次尝试插入 discordID 设置为null的 2+ 文档时,我都会收到重复错误(我尝试了sparse: trueindex: {sparse: true, unique: true})。

我能做些什么吗?如果可能的话,我想在架构级别保留此验证。

稀疏索引适用于省略键的文档。包含所需的discordID并将其设置为传递到数据存储的null

https://docs.mongodb.com/manual/core/index-sparse/

稀疏索引仅包含具有索引字段的文档

的条目,即使索引字段包含 null 值也是如此。索引将跳过缺少索引字段的任何文档。

将字段设置为在猫鼬中undefined,以便在保存之前将其删除。

相关内容

  • 没有找到相关文章

最新更新