Tôi vừa thử tái tạo kịch bản mà bạn đã mô tả ở trên với gần giống phiên bản mongoose và MongoDB, nó hoạt động tốt, tài liệu được tạo (và lưu) mà không có thuộc tính duy nhất trên firstName
trường trong lược đồ. Tôi không nghĩ lý do các đối tượng của bạn không được lưu trong DB là do không có thuộc tính duy nhất.
Ngoài ra, lý do bộ sưu tập không được tạo mà không có thuộc tính duy nhất là mongoose (hoặc chính MongoDB) sẽ không tạo bộ sưu tập cho đến khi bạn chèn dữ liệu vào bộ sưu tập. Bằng cách thêm thuộc tính duy nhất, MongoDB sẽ phải tạo tài liệu chỉ mục cho thuộc tính đó trong bộ sưu tập, do đó thêm dữ liệu vào bộ sưu tập và đây là lý do tại sao bộ sưu tập chỉ được tạo sau khi thêm thuộc tính duy nhất. Vì vậy, trong khi db.<collectionName>.find({}
) có thể không trả về gì, db.<collectionName>.getIndexes()
sẽ cung cấp cho bạn một cái gì đó.