Първоначално имахте поле, наречено name
във вашата схема, която е била зададена на unique
.
От къде знаеш? Поради грешката, която ми казва така:
duplicate key error index: **iotdb.users.$name_1**
Преименувахте полето на username
, но не премахна стария индекс. По подразбиране MongoDB ще зададе стойността на несъществуващо поле на null
в такъв случай.
Съответна документация тук:
Ако документът няма стойност за индексираното поле в уникален индекс, индексът ще съхранява нулева стойност за този документ. Поради уникалното ограничение, MongoDB ще разреши само един документ, който няма индексирано поле.
За да разрешите това, трябва да премахнете индекса за преименуваното name
поле.