我不明白猫鼬模式中诸如uniquerequired之类的字段的用途。对于unique,看来您必须编写自己的方法来查询MongoDB,以查看该值是否已存在。我想用“必需”的猫鼬只需要检查该值是否在猫鼬模型的构造函数中传递。但是,由于独特,我不了解其目的。

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/

10-09 20:19
查看更多