Mongoose中“isUnique”字段的用途

我不明白在mongoose模式中uniquerequired的领域的目的。 在unique的情况下,看起来你必须编写你自己的方法来查询MongoDB,看看这个值是否已经存在。 我想用'必需'mongoose只需要检查,如果这个值是在mongoose模型的构造函数传递。 但具有独特性,我不明白其目的。

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

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

unique将在属性上创build一个MongoDB “唯一”索引 ,从而阻止具有相同属性值的文档存在于同一个集合中。

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

你可以检查这样的错误:

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