Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual db.collection.distinct(field, query, options)
Quan trọngPhương pháp MongoshTrang này ghi lại một phương thức collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
1.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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:
Tham số | Loại hình | Sự mô tả |
---|
collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
3
| sợi dây
| Trường để trả về các giá trị riêng biệt.
| collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
4
| 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.
| collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
5
| 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úcollation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 call. { collation: <document> }
Sơ đồ sau đây cho thấy một cuộc gọi collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 ví dụ. | Loại hình | Sự mô tả |
---|
collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
7
| 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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
Sơ đồ sau đây cho thấy một cuộc gọi collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
9), thao tác sử dụng đối chiếu được chỉ định cho bộ sưu tập.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6
operations can use indexes. Trong một cụm bị che khuất, lệnh collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
1 có thể trả lại các tài liệu mồ côi.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 operations. See Covered Query for more
information on queries covered by indexes.Nếu giá trị của collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
3 được chỉ định là một mảng, collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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ó { "_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" ] } |
3, thì collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 coi { "_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 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.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 method/the collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
1 command
as well as the aggregation pipeline with the db.inventory.distinct( "dept" )
2 stage.Ví dụ, xem Trả về các giá trị riêng biệt cho một trường mảng.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 method or the
collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
1 command.Khi có thể, các hoạt động collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 có thể sử dụng các chỉ mục.
Quan trọngCác chỉ mục cũng có thể bao gồm các hoạt động collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6/lệnh collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
1 cũng như đường ống tổng hợp với giai đoạn db.inventory.distinct( "dept" )
2.collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 disconnects before the operation completes, MongoDB marks
collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 hoặc lệnh collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
6 ngắt kết nối trước khi hoạt động hoàn thành, MongoDB đánh dấu collation: { | locale: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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: <string>, | caseLevel: <boolean>, | caseFirst: <string>, | strength: <int>, | numericOrdering: <boolean>, | alternate: <string>, | maxVariable: <string>, | backwards: <boolean> | } |
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ẹoXem 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. |