Như bạn đã phát hiện ra, việc thêm một chỉ mục duy nhất vào một trường của mảng không thực thi tính duy nhất trong mảng, nó đảm bảo rằng không có hai tài liệu trong bộ sưu tập chứa cùng một giá trị trường trong mảng.
Thay vào đó, hãy xem $addToSet
toán tử mảng như một cách thêm nguyên tử một giá trị vào một mảng chỉ khi nó chưa có trong mảng.