ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как в схеме mongoose проверить уникальность документа по двум полям?

Привет всем.
Не пойму как осуществить задумку.
Есть схема вида:
const schema = new Schema({
    post_id:        { type: Number, required: true },
    idGroup:       { type: String },
    createdAt:    { type: Date, default: Date.now }
});


При сохранении документа нужно проверить уникальность post_id привязанного к idGroup
Т.е. если такой post_id у idGroup существует, то сохранять документ не нужно.
  • Вопрос задан
  • 833 просмотра
Решения вопроса 1
@Sayto
Посмотрите в сторону составных уникальных индексов.
schema.index({post_id: 1, idGroup: 1}, {unique: true});

Соответственно вставка нового документа с аналогичными значениями вызовет ошибку Duplicate key с кодом 11000.
Также, возможно, вам потребуется отключить autoIndex при создании новой схемы, если он у вас не отключен глобально.
Доки mongoose
Составные индексы
Уникальные индексы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы