MongoDB addToSet với điều kiện

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

Toán tử $addToSet thêm hoặc nối một giá trị vào một mảng, chỉ khi giá trị đó không tồn tại trong mảng. $addToSet trả về cùng một mảng mà không sửa đổi khi giá trị đã có trong mảng

Toán tử $addToSet đảm bảo rằng sẽ không có mục trùng lặp nào trong một mảng tại thời điểm cập nhật, nhưng có một điều có thể xảy ra là sau khi thêm một giá trị, thứ tự của các phần tử trong mảng có thể bị thay đổi

cú pháp

db.collection.update( { :  }, { $addToSet: { :  } } );

Thông số

TênMô tảtrường tên của cột hoặc trường vào tài liệu. valueGiá trị, được chỉ định đối với một trường cho một biểu thức hoặc điều kiện hoặc tiêu chí phù hợp. bổ sungGiá trị được thêm cho một trường hoặc cột vào một mảng nếu giá trị này không tồn tại

Bộ sưu tập mẫu "sinh viên"

 { "_id" : 1, "sem" : 1, "achieve" : [  70,  87,  90 ] }

Ví dụ về toán tử MongoDB $addToSet để nối thêm một giá trị

Nếu chúng ta muốn nối một giá trị 92 vào mảng, có thể sử dụng lệnh mongodb sau -

db.student.update( { "sem": 1}, { $addToSet: { "achieve": 92 } } );

Ví dụ trên sẽ thêm một giá trị 92 vào trường mảng đạt được

Để xem tài liệu mới cập nhật -

> db.student.find().pretty();

Đầu ra của lệnh

{ "_id" : 1, "achieve" : [ 70, 87, 90, 92 ], "sem" : 1 }

Ví dụ về toán tử MongoDB $addToSet để thêm nhiều giá trị bằng cách sử dụng công cụ sửa đổi $each

Nếu chúng ta muốn nối các giá trị 10 và 11 vào trường mảng reach, có thể sử dụng lệnh mongodb sau

> db.student.update( { "sem": 1}, { $addToSet: { "achieve":{$each:[10,11]}}});

Trong ví dụ trên, sử dụng công cụ sửa đổi $each các giá trị 10 và 11 đã được thêm vào trường mảng đạt được

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.

$addToSet là gì?

$addToSet trả về một mảng gồm tất cả các giá trị duy nhất có được từ việc áp dụng một biểu thức cho mỗi tài liệu trong một nhóm . Thứ tự của các phần tử trong mảng được trả về là không xác định. $addToSet có sẵn trong các giai đoạn này. $bucket.