Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual
db.collection.distinct[field, query, options]
Quan trọng
Phương pháp Mongosh
Trang này ghi lại một phương thức
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
0. Đây không phải là tài liệu cho các lệnh cơ sở dữ liệu hoặc trình điều khiển dành riêng cho ngôn ngữ, chẳng hạn như Node.js. Để sử dụng lệnh cơ sở dữ liệu, hãy xem lệnh collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
0 method. This is not the documentation for database commands or language-specific drivers, such as Node.js. To use the database command, see the
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 command.Đối với trình điều khiển API MongoDB, hãy tham khảo tài liệu trình điều khiển MongoDB dành riêng cho ngôn ngữ.MongoDB driver documentation.
Đối với tài liệu Shell Legacy
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
2, hãy tham khảo tài liệu để phát hành máy chủ MongoDB tương ứng:Mongo Shell v4.4
Mongo Shell v4.2
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 chế độ xem và trả về kết quả trong một mảng.
Phương thức này lấy các tham số sau:
| sợi dây | Trường để trả về các giá trị riêng biệt. | ||||||||||
| tài liệu | Một truy vấn chỉ định các tài liệu để lấy các giá trị riêng biệt. | ||||||||||
| tài liệu | Một truy vấn chỉ định các tài liệu để lấy các giá trị riêng biệt.Options. |
Không bắt buộc. Một tài liệu chỉ định các tùy chọn. Xem các tùy chọn.
Ghi chú
6 call.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
{ collation: }
collation: { |
locale: , |
caseLevel: , |
caseFirst: , |
strength: , |
numericOrdering: , |
alternate: , |
maxVariable: , |
backwards: |
} |
Loại hình
Sự mô tả
7collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
tài liệu
Optional.
Một truy vấn chỉ định các tài liệu để lấy các giá trị riêng biệt.
Không bắt buộc. Một tài liệu chỉ định các tùy chọn. Xem các tùy chọn.
Ghi chú
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
Sơ đồ sau đây cho thấy một cuộc gọi
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 ví dụ.Đồng ruộng
Chỉ định đối chiếu để sử dụng cho hoạt động.
Đối chiếu cho phép người dùng chỉ định các quy tắc cụ thể về ngôn ngữ để so sánh chuỗi, chẳng hạn như các quy tắc cho Lettercase và Dấu nhấn.
Tùy chọn đối chiếu có cú pháp sau:
Khi chỉ định đối chiếu, trường
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
8 là bắt buộc; Tất cả các trường đối chiếu khác là tùy chọn. Để biết mô tả của các trường, xem tài liệu đối chiếu.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 considers each element of the array as a separate value.Nếu đối chiếu không được xác định nhưng bộ sưu tập có một đối chiếu mặc định [xem
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
9], thao tác sử dụng đối chiếu được chỉ định cho bộ sưu tập.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6
considers { "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
5, { "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
6, and { "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
5 as separate values.Nếu không có đối chiếu được chỉ định cho bộ sưu tập hoặc cho các hoạt động, MongoDB sử dụng so sánh nhị phân đơn giản được sử dụng trong các phiên bản trước để so sánh chuỗi.Return Distinct Values for an Array Field.
Bạn không thể chỉ định nhiều đối chiếu cho một hoạt động. Ví dụ: bạn không thể chỉ định các đối chiếu khác nhau trên mỗi trường hoặc nếu thực hiện tìm thấy với một loại, bạn không thể sử dụng một đối chiếu cho tìm và một đối với loại khác.
6
operations can use indexes.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
Trong một cụm bị che khuất, lệnh
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 có thể trả lại các tài liệu mồ côi.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 operations. See Covered Query for more
information on queries covered by indexes.Nếu giá trị của
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
3 được chỉ định là một mảng, collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 coi mỗi phần tử của mảng là một giá trị riêng biệt.Chẳng hạn, nếu một trường có giá trị của nó
3, thì{ "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
6 coicollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
5,{ "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
6 và{ "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
5 là các giá trị riêng biệt.{ "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
6 method/thecollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 command as well as the aggregation pipeline with thecollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
2 stage.db.inventory.distinct[ "dept" ]
Ví dụ, xem Trả về các giá trị riêng biệt cho một trường mảng.
6 method or thecollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 command.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: } Khi có thể, các hoạt động
6 có thể sử dụng các chỉ mục.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
Quan trọng
Các chỉ mục cũng có thể bao gồm các hoạt động
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6. Xem truy vấn được bảo hiểm để biết thêm thông tin về các truy vấn được bao gồm bởi các chỉ mục.Để thực hiện một hoạt động khác biệt trong một giao dịch:
Đối với các bộ sưu tập không có vỏ, bạn có thể sử dụng phương thức
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6/lệnh collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 cũng như đường ống tổng hợp với giai đoạn db.inventory.distinct[ "dept" ]
2.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 disconnects before the operation completes, MongoDB marks
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 for termination using db.inventory.distinct[ "dept" ]
8Đối với các bộ sưu tập Sharded, bạn không thể sử dụng phương thức
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 hoặc lệnh collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1.Để tìm các giá trị riêng biệt cho một bộ sưu tập Sharded, hãy sử dụng đường ống tổng hợp với giai đoạn
db.inventory.distinct[ "dept" ]
2 thay thế. Xem hoạt động khác biệt để biết chi tiết.Trong hầu hết các trường hợp, giao dịch đa tài liệu phát sinh chi phí hiệu suất lớn hơn so với ghi tài liệu đơn lẻ và sự sẵn có của các giao dịch đa tài liệu không nên là một sự thay thế cho thiết kế lược đồ hiệu quả. Đối với nhiều kịch bản, mô hình dữ liệu được chuẩn hóa [tài liệu và mảng nhúng] sẽ tiếp tục tối ưu cho các trường hợp dữ liệu và sử dụng của bạn. Đó là, đối với nhiều kịch bản, mô hình hóa dữ liệu của bạn một cách thích hợp sẽ giảm thiểu nhu cầu cho các giao dịch đa tài liệu.
{ "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept": "A", "item": { "sku": "111", "color": "blue" }, "sizes": [ "M", "L" ] } { "_id": 3, "dept": "B", "item": { "sku": "222", "color": "blue" }, "sizes": "S" } { "_id": 4, "dept": "A", "item": { "sku": "333", "color": "black" }, "sizes": [ "S" ] }
Để biết các cân nhắc sử dụng giao dịch bổ sung [như giới hạn thời gian chạy và giới hạn kích thước oplog], xem thêm các cân nhắc sản xuất.
db.inventory.distinct[ "dept" ]
Bắt đầu từ MongoDB 4.2, nếu khách hàng phát hành
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 ngắt kết nối trước khi hoạt động hoàn thành, MongoDB đánh dấu collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6 để chấm dứt bằng cách sử dụng db.inventory.distinct[ "dept" ]
8
Bắt đầu từ MongoDB 4.4, để chạy trên một thành viên tập hợp, các hoạt động
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1 yêu cầu thành viên phải ở trạng thái db.inventory.distinct[ "item.sku" ]
0 hoặc db.inventory.distinct[ "item.sku" ]
1. Nếu thành viên ở một trạng thái khác, chẳng hạn như db.inventory.distinct[ "item.sku" ]
2, các lỗi hoạt động.db.inventory.distinct[ "item.sku" ]
Phương thức trả về mảng sau của các giá trị
db.inventory.distinct[ "item.sku" ]
9 khác biệt:Mẹo
Xem thêm:
Ký hiệu chấm cho thông tin về truy cập các trường trong các tài liệu nhúng
Ví dụ sau trả về các giá trị riêng biệt cho trường
db.inventory.distinct[ "sizes" ]
3 từ tất cả các tài liệu trong bộ sưu tập db.inventory.distinct[ "item.sku" ]
5:db.inventory.distinct[ "sizes" ]
Phương thức trả về mảng sau của các giá trị
db.inventory.distinct[ "sizes" ]
3 khác biệt:Để biết thông tin về các trường
db.inventory.distinct[ "sizes" ]
6 và mảng, hãy xem phần Hành vi.db.inventory.distinct[ "sizes" ]
6 and array fields, see the
Behavior section.Ví dụ sau trả về các giá trị riêng biệt cho trường
db.inventory.distinct[ "item.sku" ]
9, được nhúng trong trường db.inventory.distinct[ "sizes" ]
0, từ các tài liệu có db.inventory.distinct[ "item.sku" ]
6 bằng db.inventory.distinct[ "item.sku", { dept: "A" } ]
0:db.inventory.distinct[ "item.sku", { dept: "A" } ]
Phương thức trả về mảng sau của các giá trị
db.inventory.distinct[ "item.sku" ]
9 khác biệt:Đối chiếu cho phép người dùng chỉ định các quy tắc cụ thể về ngôn ngữ để so sánh chuỗi, chẳng hạn như các quy tắc cho Lettercase và Dấu nhấn.
Bộ sưu tập
db.inventory.distinct[ "item.sku", { dept: "A" } ]
2 có các tài liệu sau:{ _id: 1, category: "café", status: "A" } { _id: 2, category: "cafe", status: "a" } { _id: 3, category: "cafE", status: "a" }
Hoạt động tổng hợp sau đây bao gồm tùy chọn đối chiếu:
db.myColl.distinct[ "category", {}, { collation: { locale: "fr", strength: 1 } } ]
Để biết mô tả về các trường đối chiếu, xem tài liệu đối chiếu.