Początkowo miałeś pole o nazwie name
w twoim schemacie, który był ustawiony na unique
.
Skąd mam wiedzieć? Z powodu błędu mówiącego mi o tym:
duplicate key error index: **iotdb.users.$name_1**
Zmieniłeś nazwę pola na username
, ale nie usunięto starego indeksu. Domyślnie MongoDB ustawi wartość nieistniejącego pola na null
w takim przypadku.
Odpowiednia dokumentacja tutaj:
Jeśli dokument nie ma wartości dla indeksowanego pola w unikalnym indeksie, indeks będzie przechowywać wartość null dla tego dokumentu. Ze względu na unikatowe ograniczenie MongoDB zezwoli tylko na jeden dokument, który nie ma indeksowanego pola.
Aby rozwiązać ten problem, musisz usunąć indeks dla zmienionej nazwy name
pole.