gpt4 book ai didi

node.js - Mongoose 中 'isUnique' 字段的用途

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:38 24 4
gpt4 key购买 nike

我不明白 Mongoose 模式中 uniquerequired 等字段的用途。对于unique,您似乎必须编写自己的方法来查询 MongoDB 以查看该值是否已存在。我想对于“必需”Mongoose 只需要检查该值是否已在 Mongoose 模型的构造函数中传递。但对于 unique,我不明白其目的。

userSchema = mongoose.Schema({

username: {
type: String,
unique: true,
required: true,
validate: [validation.usernameValidator, 'not a valid username']
},
...

为了验证用户名,我必须创建自己的函数=validation.usernameValidator来检查MongoDB以查看用户名是否已存在。那么 isUnique 的意义何在呢?

最佳答案

unique 将创建一个 MongoDB "unique" index属性上,防止具有相同属性值的文档存在于同一集合中。

但是,由于它是由数据库强制执行的,因此唯一的方法是保存文档并捕获 MongoDB 将返回的重复键错误。

您可以像这样检查该错误:

if (err && err.code === 11000) { ...duplicate... }

关于node.js - Mongoose 中 'isUnique' 字段的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com