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 đó

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 ] }

Addtoset trong nhóm mongodb


Addtoset trong nhóm mongodb

Bạn đang ở đây. Trang chủ / Hướng dẫn MongoDB

  • 1) $addToSet trong 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 >

  • 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 >

  • 4) Cách viết truy vấn tổng hợp với mệnh đề where in 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 FirstNametì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ì) 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 FirstNametì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ệu

objectId trong MongoDB

Tạo cơ sở dữ liệu mới trong mongoDB


nhã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