Ban đầu, bạn có một trường có tên là name
trong giản đồ của bạn, được đặt thành unique
.
Làm sao tôi biết? Vì lỗi đã nói với tôi như vậy:
duplicate key error index: **iotdb.users.$name_1**
Bạn đã đổi tên trường thành username
, nhưng không xóa chỉ mục cũ. Theo mặc định, MongoDB sẽ đặt giá trị của trường không tồn tại thành null
trong trường hợp đó.
Tài liệu liên quan tại đây:
Nếu tài liệu không có giá trị cho trường được lập chỉ mục trong chỉ mục duy nhất, chỉ mục sẽ lưu trữ giá trị rỗng cho tài liệu này. Do ràng buộc duy nhất, MongoDB sẽ chỉ cho phép một tài liệu thiếu trường được lập chỉ mục.
Để giải quyết vấn đề này, bạn cần xóa chỉ mục cho name
đã đổi tên trường.