我有这个架构。它不是在zipCode字段中强制唯一性。在实现时间戳之前的某个时候它一直在工作,但现在似乎并非如此。我不确定自己在做什么错。我尝试删除数据库,但是即使所有新添加的内容都允许重复。
const ZipCodeSchema = new Schema({
zipCode: {
type: String,
required: true,
unique: true,
index: true
},
price: {
type: Currency,
min: 0,
required: true
},
createdBy: {
type: Schema.Types.ObjectId,
ref: 'Users',
required: true
},
updatedBy: {
type: Schema.Types.ObjectId,
ref: 'Users',
required: true
},
active: {
type: Boolean,
default: true,
},
neighborhood: {
type: String,
required: true,
unique: true
}
},
{
timestamps: true
});
答案 0 :(得分:0)
在某个时候,无论是手动还是作为安装/启动脚本的一部分,您都需要在mongodb实例上make sure the indexes are created。一种方法是使用ensureIndexes
方法
ZipCode.ensureIndexes(function (err) {
if (err) return handleError(err);
});
答案 1 :(得分:0)
使用mongoose-unique-validator插件对Notification
的唯一zipCode
字段进行预保存验证。
ZipCodeSchema