Rate this post

MongoDB cung cấp các loại toán tử truy vấn logic khác nhau và toán tử $ in là một trong số chúng. Toán tử $ in được sử dụng để chọn tài liệu trong đó giá trị của trường bằng bất kỳ giá trị nào đã cho trong mảng. Bạn có thể sử dụng toán tử này trong các phương thức như find (), update (), v.v., tùy theo yêu cầu của bạn.

Cú pháp:

{ field: { $in: [<value 1>, <value 2>, ... <value N> ] } }  

Ví dụ:

Trong các ví dụ sau, chúng tôi đang làm việc với:

  • Cơ sở dữ liệu: testDB
  • Collection: sinh viên
>db.student.find()  
{  
           "_id" : ObjectId("56254d4fdf2222265r4g12ds3d65f"),  
           "name" : "Mick",  
           "Course" : "btech",  
           "batch_year" : 2018,  
           "language" : ["c++", "java", "python"],  
           "personal_details" :   
                     {  
                      "Father_name" : "Jonny",  
                      "phone_no" : 8895321456,  
                      "age" : 23,  
                      "gender" : "Male",  
                      "City" : "NewYork",  
                     }              
}  
{  
           "_id" : ObjectId("56254d4fdf2222265r4g12ds3d691"),  
           "name" : "Zoya",  
           "Course" : "BCA",  
           "batch_year" : 2020,  
           "language" : ["C#", "JavaScript"],  
           "personal_details" :   
                     {  
                      "Father_name" : "Henry",  
                      "phone_no" : 9874563698,  
                      "age" : 20,  
                      "gender" : "Female",  
                      "City" : "London",  
                     }  
}  
{  
           "_id" : ObjectId("56254d4fdf2222265r4g12ds3d655"),  
           "name" : "Jonny",  
           "Course" : "MCA",  
           "batch_year" : 2019,  
           "language" : ["C#", "java", "PHP"],  
           "personal_details" :   
                     {  
                      "Father_name" : "Thomas",  
                      "phone_no" : 7845123698,  
                      "age" : 24,  
                      "gender" : "Male",  
                      "City" : "London",  
                     }            
}  
{  
           "_id" : ObjectId("56254d4fdf2222265r4g12ds3d678"),  
           "name" : "Oliver",  
           "Course" : "BA",  
           "batch_year" : 2017,  
           "language" : ["c", "PHP"],  
           "personal_details" :   
                     {  
                      "Father_name" : "William",  
                      "phone_no" : 9997845123,  
                      "age" : 25,  
                      "gender" : "Male",  
                      "City" : "Liverpool",  
                     }             
}  
{  
           "_id" : ObjectId("56254d4fdf2222265r4g12ds3d665"),  
           "name" : "Mia",  
           "Course" : "btech",  
           "batch_year" : 2020,  
           "language" : ["HTML", "CSS", "PHP"],  
           "personal_details" :   
                     {  
                      "Father_name" : "Leo",  
                      "phone_no" : 6312547896,  
                      "age" : 22,  
                      "gender" : "Female",  
                      "City" : "Manchester",  
                     }             
}  

Ví dụ 1: Khớp các giá trị bằng toán tử $ in

Trong ví dụ này, chúng tôi chỉ truy xuất dữ liệu của những sinh viên có tên là Jonny hoặc Mia.

>db.student.find({name: {$in: ["Jonny", "Mia"]}}).pretty()  

Ví dụ 2: So khớp các giá trị trong một mảng bằng toán tử $ in

Trong ví dụ này, chúng tôi chỉ truy xuất dữ liệu của sinh viên làm việc với JavaScript hoặc CSS.

>db.student.find({language: {$in: ["JavaScript", "CSS"]}}).pretty()  

Ví dụ 3: MongoDB Logical $ hoặc Toán tử (truy xuất dữ liệu trong các tài liệu nhúng)

Trong ví dụ này, chúng tôi chỉ truy xuất các tài liệu của sinh viên có Thành phố là “London”.

>db.student.find({"personal.City": {$in: ["London"]}}).pretty()  

Ví dụ 4: Cập nhật dữ liệu bằng toán tử $ in

Trong ví dụ này, chúng tôi đang thêm một cặp giá trị trường mới (Pending_fees: 88,5) vào tài liệu của Mick, Zoya và Mia bằng cách sử dụng phương thức update () với các toán tử $ in và $ set.

> db.student.update ({name: {$ in: ["Mick", "Zoya", "Mia"]}}, {$ set: {Pending_fees: 12000}})

Lưu ý: Phương thức update () chỉ cập nhật một tài liệu tại một thời điểm theo mặc định. Do đó, trong ví dụ này, phương thức update () sẽ chỉ cập nhật tài liệu đầu tiên phù hợp với điều kiện đã cho. Nếu bạn muốn cập nhật nhiều tài liệu, hãy đặt giá trị của đa tham số của nó thành true.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now