【发布时间】:2022-02-22 15:04:05
【问题描述】:
我正在使用 Monggose 4.8.1。我有一个简单的架构:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Organisation = new mongoose.Schema({
name: {
type: String,
required: [true, 'Organisation name must be provided'],
unique: [true, 'Organisation name must be unique']
},
createdBy: {
type: String,
ref: 'User'
},
createdOn: {
type: Date,
"default": Date.now
},
availableUntil: {
type: Date
}
});
mongoose.model('Organisation', Organisation);
我已经将电子邮件 email@domain.com 保存在文档中。
现在我想再次尝试保存它并首先使用validateAsync 检查它是否有效。所以我希望得到一个错误,因为电子邮件不是唯一的。
var organisation = new Organisation({
name: 'email@domain.com'
});
var validResult = organisation.validateSync();
console.log('validResult is ', validResult);
但 validResult 始终是 undefined...
编辑
我在架构中添加了一个额外的属性:
eggs: {
type: Number,
min: [6, 'Too few eggs'],
max: 12
}
然后尝试保存eggs: 3,这产生了错误。奇怪的是,猫鼬验证似乎并不检查值是否唯一,即使在架构中设置时也是如此......
【问题讨论】:
-
这有什么更新吗?我注意到 validateSync 不适用于一些类型验证,也不适用于自定义验证器
标签: javascript node.js mongodb mongoose