Мангуст не принуждает уникальность - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть эта схема.Это не обеспечивает уникальность в поле 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 голосов
/ 26 сентября 2018

Используйте плагин mongoose-unique-validator для проверки перед сохранением уникального поля zipCode ZipCodeSchema.

ZipCodeSchema.plugin(uniqueValidator, { type: 'mongoose-unique-validator' });
0 голосов
/ 26 сентября 2018

В какой-то момент, вручную или как часть вашего скрипта установки / запуска, вам нужно убедиться, что индексы созданы в вашем экземпляре mongodb.Один из способов - метод ensureIndexes

ZipCode.ensureIndexes(function (err) {
  if (err) return handleError(err);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...