我不明白猫鼬模式中诸如unique
和required
之类的字段的用途。对于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/