Tạo trường duy nhất trong mongodb
Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về các chỉ mục duy nhất và cách sử dụng chúng để thực thi tính duy nhất của các giá trị cho một trường trên các tài liệu trong một bộ sưu tập Show
Giới thiệu về chỉ mục duy nhất MongoDBThông thường, bạn muốn đảm bảo rằng các giá trị của trường là duy nhất trên các tài liệu trong bộ sưu tập, chẳng hạn như email hoặc tên người dùng Một chỉ mục duy nhất có thể giúp bạn thực thi quy tắc này. Trên thực tế, MongoDB sử dụng một chỉ mục duy nhất để đảm bảo rằng 9 là khóa chính duy nhất Để tạo một chỉ mục duy nhất, bạn sử dụng phương thức 0 với tùy chọn 1 như thế này
Ví dụ về chỉ mục duy nhất của MongoDBHãy lấy một số ví dụ về việc sử dụng một chỉ mục duy nhất 1) Tạo một chỉ mục duy nhất cho một trườngĐầu tiên, chèn hai tài liệu vào bộ sưu tập 2
Thứ hai, tạo một chỉ mục duy nhất cho trường email
Thứ ba, cố gắng chèn một tài liệu mới với email đã tồn tại
MongoDB trả về lỗi sau ________số 82) Tạo một chỉ mục duy nhất cho bộ sưu tập với dữ liệu trùng lặpĐầu tiên, thả bộ sưu tập 2 và tạo lại nó bằng cách chèn ba mục 0 Thứ hai, cố gắng tạo một chỉ mục duy nhất cho trường email của bộ sưu tập 2 2 MongoDB trả về lỗi sau 3 Lý do là email có các mục trùng lặp 5 Thông thường, bạn tạo một chỉ mục duy nhất trên một bộ sưu tập trước khi chèn bất kỳ dữ liệu nào. Bằng cách này, bạn đảm bảo các ràng buộc về tính duy nhất ngay từ đầu Nếu bạn tạo một chỉ mục duy nhất trên một bộ sưu tập có chứa dữ liệu, bạn có nguy cơ thất bại vì bộ sưu tập có thể có các giá trị trùng lặp. Khi tồn tại các giá trị trùng lặp, việc tạo chỉ mục duy nhất không thành công như trong ví dụ trước Để khắc phục điều này, bạn cần xem lại dữ liệu và xóa các mục trùng lặp theo cách thủ công trước khi tạo chỉ mục duy nhất. Ví dụ Đầu tiên, xóa người dùng trùng lặp 5 đầu ra 6 Sau đó, tạo một chỉ mục duy nhất cho trường email 2 đầu ra 1 Chỉ số hợp chất duy nhấtKhi một chỉ mục duy nhất chứa nhiều hơn một trường, nó được gọi là chỉ mục hợp chất duy nhất. Chỉ mục hợp chất duy nhất đảm bảo tính duy nhất của sự kết hợp các trường Ví dụ: nếu bạn tạo chỉ mục kết hợp duy nhất cho trường 1 và trường 2, các giá trị sau đây là duy nhất field1field2Combination11(1,1)12(1,2)21(2,1)22(2,2)Tuy nhiên, các giá trị sau được trùng lặp field1field2Combination11(1,1)11(1,1) -> trùng lặp21(2,1)21(2,1) -> trùng lặpĐể tạo một chỉ mục tổng hợp duy nhất, bạn chỉ định các trường trong đặc tả chỉ mục như thế này 2 Hãy lấy ví dụ về việc sử dụng chỉ số ghép duy nhất Đầu tiên, tạo bộ sưu tập 6 bằng cách thêm một vị trí vào đó 3 Thứ hai, tạo chỉ mục ghép duy nhất cho các trường 7 và 8 của tập hợp 6 4 đầu ra 5 Thứ ba, chèn một vị trí có giá trị 7 đã tồn tại 6 Nó hoạt động vì chỉ mục 1 chỉ kiểm tra sự trùng lặp của sự kết hợp giữa các giá trị vĩ độ và vĩ độ Làm cách nào để đặt giá trị duy nhất trong MongoDB?Để nhận các giá trị duy nhất và bỏ qua các giá trị trùng lặp, hãy sử dụng differ() trong MongoDB . khác biệt () tìm các giá trị riêng biệt cho một trường được chỉ định trên một bộ sưu tập và trả về kết quả trong một mảng.
Điều gì làm cho MongoDB trở nên độc đáo?Ví dụ: MongoDB sử dụng các tập hợp và tài liệu thay vì các bảng và hàng của cơ sở dữ liệu quan hệ truyền thống. MongoDB là duy nhất ngay cả trong số các cơ sở dữ liệu NoSQL vì nó áp dụng tất cả công nghệ NoSQL trong khi vẫn duy trì một số chức năng quan trọng trong các hệ thống cơ sở dữ liệu quan hệ .
Làm cách nào để tìm nạp các bản ghi riêng biệt trong MongoDB?Để nhận các giá trị riêng biệt, hãy sử dụng differ() trong MongoDB . Nó tìm các giá trị riêng biệt cho một trường được chỉ định trên một bộ sưu tập hoặc dạng xem và trả về kết quả trong một mảng.
Làm cách nào để nhận các giá trị riêng biệt của một trường trong MongoDB Compass?Bạn có thể thực hiện việc này thông qua khung tổng hợp trong Compass, sử dụng $unwind và $group . $unwind được thực hiện để tạo một tài liệu duy nhất cho từng phần tử trong mảng đích, cho phép toán tử $addToSet trong giai đoạn $group để sau đó nắm bắt các thể loại dưới dạng các phần tử riêng biệt. |