«Коллекция ошибок повторяющихся ключей E11000» для пустого массива

#mongodb #mongoose

Вопрос:

У меня есть схема, в которой одним из свойств является следующее:

  auctionId: {
    type: [Number],
    unique: true,
    sparse: true,
  },
 

MongoDB выдает мне следующую ошибку всякий раз, когда несколько документов имеют свойство в виде пустого массива:

 Cluster0.tokens index: auctionId_1 dup key: { auctionId: undefined }
 

Каков наилучший способ решить эту проблему?

Ответ №1:

Вы можете применить фильтр для индекса, используя частичные индексы.

 SchemaName.index({ auctionId: 1 }, {
  unique: true,
  partialFilterExpression: {
    'auctionId.0': { $exists: true }
  }
});