猫鼬不强制唯一

时间:2018-09-25 23:19:55

标签: node.js mongodb mongoose

我有这个架构。它不是在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
});

2 个答案:

答案 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