1. Trang chủ
  2. » Giáo án - Bài giảng

Part 3 l2 MongoDB xử lý ảnh

23 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Microsoft PowerPoint MongoDB 2 pptx Aggregation Pipeline PART 3 – LESSON 2 Aggregation Aggregation có thể hiểu là sự tập hợp Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kết quả đã.

Aggregation & Pipeline PART – LESSON Aggregation Aggregation hiểu tập hợp Các Aggregation operation xử lý ghi liệu trả kết tính tốn Các phép tốn tập hợp nhóm giá trị từ nhiều Document lại với nhau, thực nhiều phép tốn đa dạng liệu nhóm để trả kết Trong SQL, count(*) GROUP BY tương đương với Aggregation MongoDB Phương thức aggregate() Với Aggregation MongoDB sử dụng phương thức aggregate() >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) Từ Collection trên, muốn hiển thị danh sách có hướng dẫn viết người dùng sử dụng phương thức aggregate() sau: Truy vấn SQL tương đương cho trường hợp select by_user, count(*) from mycol group by by_user Trong ví dụ trên, nhóm Document trường by_user lần xuất by_user, giá trị trước tổng tăng lên Biểu thức Miêu tả Ví dụ $sum Tổng giá trị xác định từ tất Document Collection db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}]) $avg Tính trung bình tất giá trị cho từ tất Document Collection db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}]) $min Lấy giá trị nhỏ giá trị từ tất Document Collection db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}]) $max Lấy giá trị lớn giá trị từ tất Document Collection db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}]) $push Chèn giá trị vào mảng Document kết db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}]) $addToSet Chèn giá trị tới mảng Document kết quả, db.mycol.aggregate([{$group : {_id : "$by_user", url không tạo : {$addToSet : "$url"}}}]) $first Lấy Document từ Source Document theo nhóm db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}]) $last Lấy Document cuối từ Source Document theo nhóm db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}]) Pipeline Trươc hết pipeline, khái niệm dùng để miêu tả xử lí, truyền tải liệu xi theo luồng Và Aggregation Pipeline framework dùng để tổng hợp lại liệu mơ hình hóa dựa kỹ thuật pipeline Những Document đưa qua chuỗi giai đoạn pipeline để biến đổi kết nhận tổng hợp so sánh, sàng lọc, thêm bớt nội dung Mỗi giai pipeline biến đổi Document chúng qua, chí tạo loại Document khác hẳn ban đầu, kết bước trước làm đầu vào cho bước sau Nhìn chung truy vấn SQL làm với Aggregation Pipeline Mongodb( NoSQL ) làm điều Thậm chí nhìn vào truy vấn bạn cịn dễ hình dung bước xử lí kết đầu thao tác với SQL 7 WHERE => $match GROUP BY => $group HAVING => $match SELECT => $project ORDER BY => $sort LIMIT => $limit SUM => $sum COUNT() => $sum JOIN => $unwind Operator Aggregation Pipeline  Toán tử $group: Dùng tương tự Group By SQL Phải kết hợp với Count, Sum, Min, Max… Xem ví dụ phía dưới:  Tổng hợp lại liệu group by theo cặp manufacture, category  Phương thức $sum để tính tổng số product theo dịng sản phẩm Filter categories theo manufacturer câu lệnh $addToSet tính giá trung bình sản phẩm theo manufacturer câu lệnh $avg 10  Câu lệnh trước group lại category theo manufacture xóa category bị trùng  Kết tương tự dùng $addToSet category bị trùng khơng bị xóa 11 Tốn tử $match: Dùng để lọc Document, cho phép chuyển Document phù hợp với tập điều kiện định sang giai đoạn pipeline (nếu có) Cú pháp: 12  Cho document: Nếu muốn lấy kết có tên "bosalino kizaru" ta làm sau : 13 Toán tử $addFields: Cũng với liệu trên, lại muốn thêm vào kết vài trường liệu $addFields Có thể thấy sau thêm trường chuc_vu, gioi_tinh kết kế thừa lại tới bước để cuối ta tổng hợp trường Đúng với tư tưởng kỹ thuật pipeline 14 Tốn tử $project: Khi Document có q nhiều fields, tất nhiên ta muốn lấy vài liệu có ích dùng project lựa chọn 15 16 Như bạn thấy, $project thêm trường liệu tự định nghĩa, sâu bên toán tử hồn tồn sử dụng chèn vào tốn tử khác để có kết mong muốn Bằng cách này, sau query liệu trả có khả tùy biến số lượng, nội dung, phân cấp mong muốn thuận tiện cho xử lí sau ngơn ngữ lập trình 17 Sắp xếp liệu dùng $sort Ví dụ xếp giá theo giảm dần 18 $skip $limit 19 $first $last (muốn query sản phẩm cũ sử dụng câu query thay $first $last) 20 Hiển thị item theo sizes (tức tách mảng sizes ghi riêng rẽ dùng $unwind 21 22 Bài Lấy ghi có country Spain, city Salamanca Bài Lấy thông tin country, city and tên trường đại học document 23 ...Aggregation Aggregation hiểu tập hợp Các Aggregation operation xử lý ghi liệu trả kết tính tốn Các phép tốn tập hợp nhóm giá trị từ nhiều Document lại với nhau,... nhóm để trả kết Trong SQL, count(*) GROUP BY tương đương với Aggregation MongoDB Phương thức aggregate() Với Aggregation MongoDB sử dụng phương thức aggregate() >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)... sau Nhìn chung truy vấn SQL làm với Aggregation Pipeline Mongodb( NoSQL ) làm điều Thậm chí nhìn vào truy vấn bạn cịn dễ hình dung bước xử lí kết đầu thao tác với SQL 7 WHERE => $match GROUP BY

Ngày đăng: 11/09/2022, 23:00

w