$$ trong mongodb là gì?
Hoạt động tổng hợp xử lý bản ghi dữ liệu và trả về kết quả được tính toán. Hoạt động tổng hợp nhóm các giá trị từ nhiều tài liệu lại với nhau và có thể thực hiện nhiều thao tác khác nhau trên dữ liệu được nhóm để trả về một kết quả duy nhất. Trong SQL đếm (*) và với nhóm theo tương đương với tập hợp MongoDB Show Phương thức tổng hợp ()Để tổng hợp trong MongoDB, bạn nên sử dụng phương thức tổng hợp () cú phápCú pháp cơ bản của phương thức tổng hợp () như sau - >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) Thí dụTrong bộ sưu tập, bạn có dữ liệu sau - { _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by_user: 'tutorials point', url: 'http://www.tutorialspoint.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, { _id: ObjectId(7df78ad8902d) title: 'NoSQL Overview', description: 'No sql database is very fast', by_user: 'tutorials point', url: 'http://www.tutorialspoint.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 10 }, { _id: ObjectId(7df78ad8902e) title: 'Neo4j Overview', description: 'Neo4j is no sql database', by_user: 'Neo4j', url: 'http://www.neo4j.com', tags: ['neo4j', 'database', 'NoSQL'], likes: 750 }, Bây giờ từ bộ sưu tập trên, nếu bạn muốn hiển thị một danh sách cho biết có bao nhiêu hướng dẫn được viết bởi mỗi người dùng, thì bạn sẽ sử dụng phương thức tổng hợp () sau đây - > db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}]) { "_id" : "tutorials point", "num_tutorial" : 2 } { "_id" : "Neo4j", "num_tutorial" : 1 } > Truy vấn tương đương Sql cho trường hợp sử dụng trên sẽ được chọn by_user, đếm(*) từ nhóm mycol bởi by_user Trong ví dụ trên, chúng tôi đã nhóm các tài liệu theo trường by_user và trên mỗi lần xuất hiện của người dùng, giá trị tổng trước đó được tăng lên. Sau đây là danh sách các biểu thức tổng hợp có sẵn ExpressionDescriptionExample$sumTổng hợp giá trị đã xác định từ tất cả các tài liệu trong bộ sưu tập. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", num_tutorial. {$sum. "$like"}}}])$avgTính giá trị trung bình của tất cả các giá trị đã cho từ tất cả các tài liệu trong bộ sưu tập. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", num_tutorial. {$trung bình. "$like"}}}])$minNhận giá trị tối thiểu tương ứng từ tất cả các tài liệu trong bộ sưu tập. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", num_tutorial. {$ phút. "$like"}}}])$maxLấy giá trị tối đa tương ứng từ tất cả các tài liệu trong bộ sưu tập. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", num_tutorial. {$tối đa. "$like"}}}])$pushChèn giá trị vào một mảng trong tài liệu kết quả. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", url. {$push. "$url"}}}])$addToSet Chèn giá trị vào một mảng trong tài liệu kết quả nhưng không tạo ra các giá trị trùng lặp. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", url. {$addToSet. "$url"}}}])$firstLấy tài liệu đầu tiên từ tài liệu nguồn theo nhóm. Thông thường, điều này chỉ có ý nghĩa cùng với một số giai đoạn “$sort” được áp dụng trước đó. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", first_url. {$đầu tiên. "$url"}}}])$lastLấy tài liệu cuối cùng từ tài liệu nguồn theo nhóm. Thông thường, điều này chỉ có ý nghĩa cùng với một số giai đoạn “$sort” được áp dụng trước đó. db. nấm mốc. tổng hợp([{$group. {_Tôi. "$by_user", last_url. {$last. "$url"}}}])Khái niệm đường ốngTrong lệnh UNIX, đường dẫn shell có nghĩa là khả năng thực hiện một thao tác trên một số đầu vào và sử dụng đầu ra làm đầu vào cho lệnh tiếp theo, v.v. MongoDB cũng hỗ trợ khái niệm tương tự trong khung tổng hợp. Có một tập hợp các giai đoạn có thể và mỗi giai đoạn đó được coi là một tập hợp tài liệu làm đầu vào và tạo ra một tập hợp tài liệu kết quả (hoặc tài liệu JSON kết quả cuối cùng ở cuối đường ống). Điều này sau đó có thể được sử dụng cho giai đoạn tiếp theo, v.v. Sau đây là các giai đoạn có thể có trong khung tổng hợp -
|