Lệnh tổng trong MongoDB hợp thực hiện hoạt động tổng hợp bằng cách sử dụng đường ống tổng hợp. Đường ống tổng hợp cho phép người dùng thực hiện xử lý dữ liệu từ bản ghi hoặc nguồn khác bằng cách sử dụng trình tự ứng dụng dựa trên giai đoạn.
Các bài viết liên quan:
Cú pháp:
{ aggregate: "<collection>" || 1, pipeline: [ <stage>, <...>], explain: <boolean>, allowDiskUse: <boolean>, cursor: <doc>, maxTimeMS: <int>, bypassDocumentValidation: <boolean>, readConcern: <doc>, collation: <doc>, hint: <string or doc>, comment: <string>, writeConcern: <doc> }
Fields | Type | Description |
aggregate | string | Nó chứa tên của đường ống tổng hợp |
pipeline | array | Mảng biến đổi danh sách tài liệu như một phần của đường ống tổng hợp. |
explain | boolean | Trường giải thích là tùy chọn được sử dụng để trả về thông tin về quá trình xử lý đường ống |
allowDiskUse | boolean | Nó cho phép lệnh ghi vào các tệp tạm thời. |
cursor | document | Nó giải quyết các tài liệu có chứa tùy chọn điều khiển để tạo đối tượng con trỏ. |
maxTimeMS | non-negative integer | Nó xác định giới hạn thời gian cho các hoạt động xử lý trên con trỏ. |
Bypass Document Validation | boolean | Nó chỉ được áp dụng trong trường hợp bạn chỉ định các giai đoạn tổng hợp ra hoặc hợp nhất. |
readConcern | document | Nó chỉ định mối quan tâm đọc. Các mức độ quan tâm có thể đọc là – cục bộ, có sẵn, đa số và có thể phân loại theo tuyến tính. |
collation | document | Nó chỉ định mối quan tâm đọc. Các mức độ quan tâm có thể đọc là – cục bộ, có sẵn, đa số và có thể phân loại theo tuyến tính. collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean>} |
hint | string or document | Chúng ta có thể chỉ định các quy tắc ngôn ngữ cụ thể để so sánh chuỗi bằng cách sử dụng đối chiếu. Chẳng hạn như – quy tắc về trường hợp và dấu trọng âm. |
comment | string | Chúng ta có thể khai báo một chuỗi tùy ý để giúp theo dõi hoạt động thông qua trình biên dịch cơ sở dữ liệu, currentOp và các bản ghi. |
writeConcern | document | Nó được thiết lập để sử dụng mối quan tâm ghi mặc định với các giai đoạn đường ống $ out hoặc $ merge. |
Ví dụ:
Chúng tôi có các tài liệu sau trong bài viết:
{ _id: ObjectId("52769ea0f3dc6ead47c9a1b2"), author: "Ankit", title: "Course", tags: [ "Java Tutorial", "DBMS Tutorial", "mongodb"] }
Bây giờ, chúng tôi sẽ thực hiện một hoạt động tổng hợp trên bộ sưu tập bài viết để tính toán số lượng của mọi phần tử riêng biệt trong mảng thẻ xuất hiện trong bộ sưu tập.
db.runCommand( { aggregate: "articles", pipeline: [ { $project: { tags: 1 } }, { $unwind: "$tags" }, { $group: { _id: "$tags", count: { $sum : 1 } } } ], cursor: { } } )
Lệnh MongoDB Count
Lệnh MongoDB đếm số lượng tài liệu trong một bộ sưu tập hoặc một dạng xem. Nó trả về một tài liệu có chứa trạng thái đếm và lệnh.
Cú pháp:
{ count: <collection or view>, query: <document>, limit: <integer>, skip: <integer>, hint: <hint>, readConcern: <document>, collation: <document> }
Field | Type | Description |
count | string | Đây là tên của collection hoặc view cần đếm. |
query | document | Nó là tùy chọn và được sử dụng để chọn tài liệu để đếm trong bộ sưu tập hoặc chế độ xem. |
limit | integer | Nó là tùy chọn và được sử dụng để giới hạn số lượng tối đa các tài liệu phù hợp để trả về. |
skip | integer | Nó là tùy chọn và được sử dụng để so khớp các tài liệu cần bỏ qua trước khi trả về kết quả. |
hint | string | Nó được sử dụng để xác định tên chỉ mục dưới dạng một chuỗi hoặc tài liệu đặc tả chỉ mục. |
readConcern document | readConcern: { level: <value> } | |
collation | document | Nó cho phép chúng ta xác định các quy tắc ngôn ngữ cụ thể để so sánh chuỗi. collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
Ví dụ:
Để đếm số lượng tất cả các tài liệu trong collection:
db.runCommand ({count: 'order'})
Lệnh Distinct của MongoDB
Lệnh này tìm các giá trị riêng biệt cho trường đã cho trên một tập hợp duy nhất. Nó trả về một tài liệu có chứa một mảng các giá trị khác nhau. Tài liệu trả về chứa một bản ghi được nhúng với thống kê truy vấn và kế hoạch truy vấn.
Cú pháp:
distinct: "<collection>", key: "<field>", query: <query>, readConcern: <read concern document>, collation: <collation document> }
Field | Type | Description |
distinct | string | Nó là tên của collection để truy vấn các giá trị khác nhau |
key | document | Đây là trường mà lệnh trả về giá trị khác biệt. |
query | integer | Nó chỉ định các tài liệu từ nơi giá trị khác biệt sẽ được truy xuất. |
readConcern document | Nó chỉ định mối quan tâm đọc. readConcern: { level: <value> } | |
collation | string | Nó cho phép chúng tôi xác định các quy tắc dành riêng cho ngôn ngữ để so sánh chuỗi. collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
Ví dụ:
Ví dụ sau trả về các giá trị khác nhau cho các sách trường từ tất cả các tài liệu trong bộ sưu tập thư viện:
db.runCommand ( { distinct: "library", key: "books" } )
Lệnh MongoDB MapReduce
Lệnh MapReduce cho phép chúng tôi chạy các hoạt động tổng hợp thu nhỏ bản đồ trên một tập hợp.
Cú pháp:
db.runCommand( { mapReduce: <collection>, map: <function>, reduce: <function>, finalize: <function>, out: <output>, query: <document>, sort: <document>, limit: <number>, scope: <document>, jsMode: <boolean>, verbose: <boolean>, bypassDocumentValidation: <boolean>, collation: <document>, writeConcern: <document> } )
Field | Type | Description |
MapReduce | collection | Đây là tên của tập hợp mà chúng ta muốn thực hiện thao tác mapReduce. |
map | function | Đây là một hàm JavaScript liên kết hoặc ánh xạ cặp khóa-giá trị. |
reduce | function | Đây là một hàm JavaScript giúp giảm xuống một đối tượng duy nhất tất cả các giá trị được liên kết với một khóa cụ thể. |
out | string | Nó chỉ định nơi lưu trữ đầu ra. |
query | document | Nó chỉ định các tiêu chí lựa chọn để xác định các tài liệu đầu vào cho map function. |
sort | document | Nó sắp xếp tài liệu đầu vào. |
limit | number | Nó chỉ định số lượng tài liệu tối đa cho đầu vào vào map function. |
finalize | function | Nó tuân theo phương pháp giảm để sửa đổi đầu ra. |
scope | document | Nó là một tùy chọn và khai báo các biến toàn cục có thể truy cập được trên map. |
jsMode | boolean | jsMode chỉ định có chuyển đổi dữ liệu trung gian sang định dạng BSON hay không. |
verbose | boolean | Nó chỉ định có đưa thông tin thời gian vào kết quả hay không. |
bypass Document Validation | boolean | Nó cho phép mapReduce để bỏ qua xác thực tài liệu trong quá trình hoạt động. |
collation | document | Nó cho phép chúng tôi chỉ định các quy tắc dành riêng cho ngôn ngữ để so sánh chuỗi collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
writeConcern | document | Đây là một tài liệu thể hiện mối quan tâm ghi được sử dụng khi xuất ra một collection. |
Ví dụ:
var mapFunction = function() { ... }; var reduceFunction = function(key, values) { ... }; db.runCommand( { mapReduce: <input-collection>, map: mapFunction, reduce: reduceFunction, out: { merge: <output-collection> }, query: <query> } )