Addtoset trong nhóm mongodb
Để truy xuất nhóm theo kết quả với mảng, hãy sử dụng hàm tổng hợp(). Chúng tôi cũng sẽ sử dụng toán tử $addToSet. Nó thêm một giá trị vào một mảng trừ khi giá trị đó đã có sẵn, trong trường hợp đó $addToSet không làm gì với mảng đó Show
Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu - > db.demo498.insertOne({id:1,Name:["Chris"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e86192b987b6e0e9d18f553") } > db.demo498.insertOne({id:2,Name:["David"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e86192d987b6e0e9d18f554") } > db.demo498.insertOne({id:3,Name:["Chris"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e861931987b6e0e9d18f555") } > db.demo498.insertOne({id:4,Name:["Bob"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e861942987b6e0e9d18f556") } > db.demo498.insertOne({id:5,Name:["David"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e861947987b6e0e9d18f557") } Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find() - > db.demo498.find(); Điều này sẽ tạo ra đầu ra sau - { "_id" : ObjectId("5e86192b987b6e0e9d18f553"), "id" : 1, "Name" : [ "Chris" ] } { "_id" : ObjectId("5e86192d987b6e0e9d18f554"), "id" : 2, "Name" : [ "David" ] } { "_id" : ObjectId("5e861931987b6e0e9d18f555"), "id" : 3, "Name" : [ "Chris" ] } { "_id" : ObjectId("5e861942987b6e0e9d18f556"), "id" : 4, "Name" : [ "Bob" ] } { "_id" : ObjectId("5e861947987b6e0e9d18f557"), "id" : 5, "Name" : [ "David" ] } Sau đây là truy vấn để truy xuất nhóm theo kết quả với mảng trong MongoDB - > db.demo498.aggregate([{ .. $unwind : "$Name" .. }, { .. $group : { .. _id : $quot;$Name", .. Id : { .. $addToSet : "$id" .. } .. } .. } .. ]) Điều này sẽ tạo ra đầu ra sau - { "_id" : "David", "Id" : [ 5, 2 ] } { "_id" : "Bob", "Id" : [ 4 ] } { "_id" : "Chris", "Id" : [ 3, 1 ] } Bạn đang ở đây. Trang chủ / Hướng dẫn MongoDB
1) $addToSet trong MongoDB. $addToSet trả về một mảng gồm tất cả DUY NHẤT . from collection in MongoDB. 2) Tìm tất cả tiền lương của tất cả nhân viên vớisame firstName in array from collection in MongoDB > Bước 1 - Chúng tôi sẽ nhóm nhân viên theo FirstName và tìm tất cả mức lương DUY NHẤT trong mỗi nhóm< . . Bước 2- Chúng tôi sẽ sử dụng phương pháp aggregate(), $group operator and $addToSet operator > db. người lao động. tổng hợp([{$group. {_id. "$firstName", lương_all. {$addToSet. "$salary"}}}]) Đầu ra > { "_Tôi". "ank", "salary_all". [ 1000, 2000 ] } { "_Tôi". "sag", "salary_all". [ 3000, 4000 ] } { "_Tôi". "neh", "salary_all". [ 5000 ] } 3) Tìm tất cả mức lương ĐỘC ĐÁO của tất cả nhân viên in array from collection in MongoDB > Bước 1 - Chúng tôi sẽ nhóm nhân viên theo null (không có gì) và tìm tất cả tiền lương trong nhóm . e. toàn bộ chứng từ nhờ thu)(there will be only 1 group - i.e. whole documents of collection) Bước 2- Chúng tôi sẽ sử dụng phương pháp aggregate(), $group operator, $addToSet operator and _id : null > db. người lao động. tổng hợp([{$group. {_id. null, lương_all. {$addToSet. "$salary"}}}]) Đầu ra > { "_Tôi". null, "lương_tất cả". [ 1000, 2000, 3000, 4000, 5000 ] } 4) Cách viết truy vấn tổng hợp với mệnh đề where in MongoDB > Tìm tất cả mức lương DUY NHẤT của tất cả nhân viên với <same firstName where salary > 2000 in array from collection in MongoDB > Bước 1 - Ta sẽ tìm tài liệu có mức lương > 2000 Bước 2 - Chúng tôi sẽ sử dụng toán tử $match operator Bước 3 - Sau đó, chúng tôi sẽ nhóm nhân viên theo FirstName và tìm tất cả tiền lương trong mỗi nhóm< . . Bước 4 - Chúng tôi sẽ sử dụng phương thức aggregate(), $group operator, and _id : null > db. người lao động. tổng hợp([ { $match. { lương. { $gt. 2000} } }, {$group. {_Tôi. "$firstName", lương_all. {$addToSet. "$salary"}}}]) Đầu ra > { "_Tôi". "sag", "salary_all". [ 3000, 4000 ] } { "_Tôi". "neh", "salary_all". [ 5000 ] } Có bất kỳ nghi ngờ? . Hãy bình luận trong phần dưới đây Hãy thể hiện tình yêu của bạn bằng cách thích JavaMadeSoEasy. com (JMSE) trên facebook, following on google+ or Twitter. LIÊN KẾT LIÊN QUAN> MongoDB là gì - Giới thiệu nhanh về cơ sở dữ liệuobjectId trong MongoDBTạo cơ sở dữ liệu mới trong mongoDBnhãn. Hàm tổng hợp MongoDB MongoDB Việc sử dụng addToSet trong MongoDB là gì?Toán tử $addToSet thêm một giá trị vào một mảng trừ khi giá trị đó đã có sẵn , trong trường hợp đó $addToSet không làm gì với mảng đó. Toán tử $addToSet có dạng. { $addToSet. {
Sự khác biệt giữa addToSet và đẩy là gì?Sự khác biệt
. If the value already exists in the array, $push will still append the value (resulting in duplicate values). Tuy nhiên, $addToSet chỉ nối thêm giá trị nếu nó chưa tồn tại trong mảng. Do đó, nếu giá trị đã tồn tại, $addToSet sẽ không nối thêm giá trị đó (nó sẽ không làm gì cả).
Sự khác biệt giữa addToSet và đẩy trong MongoDB là gì?Sự khác biệt giữa $push/$addtoset là $addToSet không thêm mục vào trường nhất định nếu nó đã chứa mục đó, mặt khác, $push sẽ thêm . db. . db.
Làm cách nào để sử dụng số lượng trong nhóm trong MongoDB?Chúng ta có thể sử dụng đoạn mã sau để nhóm theo trường 'vị trí' và đếm số lần xuất hiện của từng vị trí. . Vị trí 'Chuyển tiếp' xảy ra 1 lần Vị trí 'Guard' xảy ra 3 lần Vị trí 'Trung tâm' xuất hiện 1 lần |