MongoDB cung cấp nhiều toán tử truy vấn logic. Toán tử $ or là một trong những toán tử đó. Toán tử $ or thực hiện các “phép toán OR” logic trên một mảng của một hoặc nhiều biểu thức. Toán tử này chỉ được sử dụng để truy xuất các tài liệu khớp với ít nhất một trong các biểu thức đã cho trong mảng.
Toán tử $ OR được sử dụng để tìm nhiều biểu thức trong một truy vấn chỉ yêu cầu một tiêu chí phù hợp trong tài liệu. Nhiều khóa và giá trị có thể được sử dụng với toán tử $ hoặc.
Người dùng 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 họ.
Bạn cũng có thể sử dụng toán tử này với các truy vấn GeoSpatial, hoạt động sắp xếp và truy vấn văn bản.
Cú pháp:
{ $or: [ { Expression 1 }, { Expression 2 }, ..., { Expression 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 ()
>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: MongoDB Logical $ hoặc Toán tử:
Trong ví dụ này, chúng tôi chỉ truy xuất dữ liệu của những sinh viên có Khóa học là “MCA” hoặc batch_year là 2018.
>db.student.find({$or: [{Course : "MCA"}, {batch_year : 2018}]}).pretty()
Ví dụ 2: MongoDB Logical $ hoặc Toán tử (truy xuất dữ liệu điện tử trong các document):
Trong ví dụ này, chúng tôi chỉ truy xuất tài liệu của những sinh viên có Thành phố là “London” hoặc 20 tuổi.
>db.student.find({$or: [{"personal.age": 20}, {"personal.City": "London"}]}).pretty()
Ví dụ 3: So khớp các giá trị trong một mảng bằng cách sử dụng toán tử $ hoặc:
Trong ví dụ này, chúng tôi chỉ truy xuất các tài liệu của sinh viên khớp với ít nhất một giá trị trong mảng đã cho.
>db.student.find({$or: [{language: {$in: ["c++", "java", "python"]}}]}).pretty()