MongoDB - 2 Не допускаются уникальные ключи в единой схеме? - PullRequest
1 голос
/ 17 марта 2020

Попытка сделать это в пн goose:

const blogPost = new Schema({
  title: { type: String, unique: true },
  slug: { type: String, unique: true },
  //...
});

Тем не менее, я получаю сообщение об ошибке:

MongoError: E11000 коллекция ошибок повторяющихся ключей: blog.articles index : slug_1 dup key: {: null}

Разрешено ли это? Я просто хочу убедиться, что никто не создает слаг дважды, и ни один из них не использует один и тот же заголовок дважды.

1 Ответ

1 голос
/ 17 марта 2020

На самом деле вы создаете slug со значением null и получаете ошибку при наличии нескольких документов с null в поле slug.

Используйте индекс sparse, чтобы исключить null значения.

const blogPost = new Schema({
  title: { type: String, unique: true, sparse: true },
  slug: { type: String, unique: true, sparse: true },
  //...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...