В соответствии с официальной документацией Mongoose :
Массивы являются особыми, поскольку неявно имеют значение по умолчанию [] (пустой массив).
Вот почему он неявно индексирует значение null
, когда вы ничего не вводите в friends
.Чтобы исправить это, вы можете явно определить значение default
для обоих массивов как undefined
и создать свой индекс как разреженный , чтобы исключить пустые значения из ограничения unique
, попробуйте:
friends : {
type: [ { userid : {type: String, default: '', index: { unique: true, sparse: true } } } ],
default: undefined
},
friendRequests: {
type: [ { userid : {type: String, default: '', index: { unique: true, sparse: true } } } ],
default: undefined
}
РЕДАКТИРОВАТЬ: пожалуйста, убедитесь, что mongoose перестраивает ваши индексы перед тестированием