Задать вопрос

Unique или null для поля. Возможно ли такое в mongo?

в mongodb для поля добавлен индекс с признаком unique.
возможно ли настроить его так, чтобы на значения null уникальность не распространялась?
  • Вопрос задан
  • 2880 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
db.collection.ensureIndex( { a: 1 }, { unique: true, sparse: true } )



In many situations you will want to combine the unique constraint with the sparse option. When MongoDB indexes a field, if a document does not have a value for a field, the index entry for that item will be null. Since unique indexes cannot have duplicate values for a field, without the sparse option, MongoDB will reject the second document and all subsequent documents without the indexed field. Consider the following prototype.
Ответ написан
@lega
К ответу выше, ещё вариант - хранить не значение, а список.
В итоге пустой список будет пропускаться (не будет входить в uniq), а так же появляется доп. возможность - один документ сможет "резервировать" несколько уникальных значений. Например при уникальности email, в уникальность можно будет добавить аналоги uniq_email:['mail@yandex.ru', 'mail@ya.ru']
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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