Bóc tách từng phần tử của một mảng và trả về một luồng tài liệu. trả về một tài liệu cho mọi thành viên của mảng không kết nối trong mọi tài liệu nguồn. Thực hiện lệnh tổng hợp sau Show db.article.aggregate( { $project : { author : 1 , title : 1 , tags : 1 }}, { $unwind : "$tags" } ); 注解 Ký hiệu đô la (i. e. $ ) phải tiến hành thông số kỹ thuật trường được giao cho người vận hành. Trong tập hợp trên, hãy chọn (bao gồm) tác giả , tiêu đề, and tags fields, as well as the _id field implicitly. Then the pipeline passes the results of the projection to the operator, which will unwind the thẻ . Thao tác này có thể trả về một chuỗi tài liệu giống như sau đối với tập hợp chứa một tài liệu chứa trường thẻ với một mảng gồm 3 mục. { "result" : [ { "_id" : ObjectId("4e6e4ef557b77501a49233f6"), "title" : "this is my title", "author" : "bob", "tags" : "fun" }, { "_id" : ObjectId("4e6e4ef557b77501a49233f6"), "title" : "this is my title", "author" : "bob", "tags" : "good" }, { "_id" : ObjectId("4e6e4ef557b77501a49233f6"), "title" : "this is my title", "author" : "bob", "tags" : "fun" } ], "OK" : 1 } Một tài liệu trở thành 3 tài liệu. mỗi tài liệu giống hệt nhau ngoại trừ giá trị của trường thẻ . Mỗi giá trị của tags là một trong các giá trị trong mảng “tags” ban đầu. 注解 có những hành vi sau
Trong trường hợp đầu tiên sử dụng $reduce, nó so sánh giá trị hiện tại trong mảng với giá trị tối thiểu được xác định (ban đầu được đặt thành giá trị đầu tiên), như được mô tả trong các nhận xét, độ phức tạp về thời gian nên là O(n), n là kích thước Trong khi sử dụng $unwind như được mô tả trong ví dụ thứ hai, bạn cần giải cấu trúc các phần tử mảng, đó sẽ là O(n). Sau đó, cần sắp xếp trên item_field, sau khi bạn giải phóng mảng, Trong trường hợp này, $reduce chỉ thực thi trên mỗi mục trường mảng tài liệu, trong khi $unwind sẽ mở rộng số lượng tài liệu thành nhóm, i. e. Nếu bạn giải phóng 100 tài liệu của 3 mục mảng, mỗi giai đoạn tiếp theo (sắp xếp và nhóm) sẽ kết thúc với 300 tài liệu để xử lý. Do đó làm tăng độ phức tạp cho $unwind thành O(n+logn), O(logn) cho sắp xếp. Ngoài ra, sắp xếp có một số hạn chế - và bạn cần xem xét đối với một mảng lớn hơn Thư giãn trong tổng hợp là gì?Ví dụ. thư giãn $
. Ở đây từ kết quả cho thấy rằng, mỗi tài liệu giống hệt với tài liệu đầu vào ngoại trừ giá trị của trường kích thước chứa giá trị từ mảng kích thước ban đầu. used to output a document for each element in the sizes array. Here from the result it shows that, each document is identical to the input document except for the value of the sizes field that contain the value from the original sizes array.
Điều nào sau đây là các giai đoạn trong tập hợp MongoDB?Đây là 7 giai đoạn tổng hợp Pipeline trong MongoDB. . dự án $ $match nhóm $ $sắp xếp $skip & $limit $đầu tiên & $cuối cùng thư giãn $ Các cách khác nhau để thực hiện tổng hợp trong MongoDB là gì?$match. Nó được sử dụng để lọc các tài liệu có thể làm giảm số lượng tài liệu được cung cấp làm đầu vào cho giai đoạn tiếp theo. dự án $. Nó được sử dụng để chọn một số trường cụ thể từ một bộ sưu tập. nhóm $. Nó được sử dụng để nhóm các tài liệu dựa trên một số giá trị. $sắp xếp. Nó được sử dụng để sắp xếp tài liệu đang sắp xếp lại chúng
Tập hợp MongoDB trả về cái gì?trả lại. Con trỏ tới các tài liệu được tạo bởi giai đoạn cuối cùng của hoạt động quy trình tổng hợp hoặc nếu bạn bao gồm tùy chọn giải thích, thì tài liệu cung cấp chi tiết về quá trình xử lý hoạt động tổng hợp. Nếu đường dẫn bao gồm toán tử $out, hàm tổng hợp() trả về một con trỏ trống |