MongoDB HOẶC Toán tử

Mongodb Hoac Toan Tu



Chúng tôi có các toán tử truy vấn logic khác nhau có sẵn trong MongoDB và một trong số đó là toán tử $or. Toán tử $or trong MongoDB được sử dụng để triển khai thao tác OR logic trên một mảng chứa hai hoặc nhiều biểu thức và chỉ truy xuất những tài liệu khớp với bất kỳ một trong các biểu thức đã chỉ định trong mảng. Toán tử $or được sử dụng để tìm nhiều câu lệnh trong một truy vấn chỉ với một tiêu chí tài liệu phù hợp. Toán tử $or tạo điều kiện cho sự kết hợp của một số khóa và giá trị.

Cách sử dụng Toán tử OR trong MongoDB

Toán tử OR trong MongoDB được thể hiện ở định dạng “$or”. “$or” được sử dụng để đặt nhiều biểu thức trong dấu ngoặc vuông mà phép toán OR logic được thực hiện trên đó. Chúng tôi sử dụng toán tử $or trên bộ sưu tập MongoDB. Chúng tôi tạo bộ sưu tập MongoDB có tiêu đề “Bệnh nhân”. Bộ sưu tập “Bệnh nhân” được chèn vào cùng với nhiều tài liệu mà chúng tôi thực hiện toán tử $or trên đó. Các tài liệu sau được chèn vào MongoDB bằng cách gọi phương thức insertMany():

db.Patients.insertMany ( [
{
'Tên đầu tiên' : 'Jennifer' ,
'Họ' : 'Joshua' ,
'Tuổi' : 44 ,
'Số điện thoại' : 43400517 ,
'Cuộc hẹn' : 'Bác sĩ nha khoa' ,
'Phí' : 2000 ,
'Bài kiểm tra' : [ 'Tia X' , 'Máu' , 'bột giấy' ]
} ,
{
'Tên đầu tiên' : 'Thomas' ,
'Họ' : 'Steven' ,
'Tuổi' : 74 ,
'Số điện thoại' : 39034694 ,
'Ngày hẹn' : 'Bác sĩ phẫu thuật' ,
'Phí' : 6000 ,
'Bài kiểm tra' : [ 'Tự chọn' , 'PPT' ]
} ,
{
'Tên đầu tiên' : 'Charles' ,
'Họ' : 'Đa-ni-ên' ,
'Tuổi' : 35 ,
'Số điện thoại' : 65712165 ,
'Cuộc hẹn' : 'bác sĩ tim mạch' ,
'Phí' : 2000 ,
'Bài kiểm tra' : [ 'CT' , 'MRI' ]
} ,
{
'Tên đầu tiên' : 'Michelle' ,
'Họ' : 'Phaolô' ,
'Tuổi' : 51 ,
'Số điện thoại' : 54399288 ,
'Cuộc hẹn' : 'Bác sĩ da liễu' ,
'Phí' : 8000 ,
'Bài kiểm tra' : [ 'Sinh thiết da' , 'Đèn Gỗ' , 'Cạo da' ]
} ,

{
'Tên đầu tiên' : 'Andrew' ,
'Họ' : 'Jerry' ,
'Tuổi' : 69 ,
'Số điện thoại' : 6108100 ,
'Cuộc hẹn' : 'bác sĩ tim mạch' ,
'Phí' : 7000 ,
'Bài kiểm tra' : [ 'Điện tâm đồ' , 'Đường huyết' , 'Siêu âm' ]
}
] )

Đầu ra của các tài liệu được chèn trước đó xác nhận 'true' và cung cấp các giá trị 'insertedIds' cho mỗi tài liệu.









Ví dụ 1: MongoDB $OR Toán tử để khớp với Tài liệu

Truy vấn cơ bản của toán tử MongoDB $or được triển khai ở đây để minh họa hoạt động của toán tử này trong MongoDB. Ở đây, chúng tôi định nghĩa một truy vấn bằng phương thức find(). Phương thức find() được chỉ định thêm với toán tử $or. Toán tử $or nhận hai trường, “Cuộc hẹn” và “Các khoản phí”, được gán với các giá trị. Toán tử $or khớp với giá trị trường và chỉ truy xuất những tài liệu có giá trị khớp với giá trị trường. Cấu trúc truy vấn của toán tử $or được cung cấp như sau:



db.Patients.find ( { $ hoặc : [ { Cuộc hẹn: 'Bác sĩ da liễu' } ,
{ phí: 7000 } ] } ) .đẹp ( )

Chúng tôi tìm các tài liệu có “Cuộc hẹn” với “Bác sĩ Da liễu” và “Các khoản phí” là “7000”. Toán tử $or tìm kết quả thực từ cả hai giá trị trường và trả về tài liệu phù hợp ở đầu ra.





Ví dụ 2: Toán tử MongoDB $OR để khớp với các tài liệu không tồn tại

Trong truy vấn trước đó của toán tử $or, chúng tôi đã tìm nạp các tài liệu phù hợp. Bây giờ, chúng tôi truy xuất tài liệu không tồn tại từ bộ sưu tập “Bệnh nhân”. Truy vấn toán tử $or sau lấy tài liệu có “FirstName” là “Charles” và “Appointment” là với “Bác sĩ”. Toán tử $or khớp các giá trị trường này trong bộ sưu tập “Bệnh nhân” và tạo kết quả sau khi khớp.



db.Patients.find ( { $ hoặc : [ { 'Tên đầu tiên' : 'Charles' } , { 'Cuộc hẹn' : 'Bác sĩ' } ] } ) .đẹp ( )

Toán tử $or có một kết quả đúng và một kết quả sai. Vì chúng tôi chỉ định “Cuộc hẹn” với giá trị “Bác sĩ” không khớp với bất kỳ tài liệu nào trong bộ sưu tập “Bệnh nhân”. Đó là lý do tại sao toán tử $or chỉ trả về tài liệu của trường phù hợp có đầu ra là “Bệnh nhân”.

Ví dụ 3: Toán tử MongoDB $OR với nhiều đối số

Chúng tôi đã cung cấp hai đối số trong các truy vấn toán tử $or trước đó. Ở đây, chúng tôi chuyển nhiều hơn hai đối số dưới dạng biểu thức toán tử $or. Chúng tôi truy xuất tài liệu khớp với bất kỳ giá trị trường 'Tuổi' nào được cung cấp cho nó. Yêu cầu toán tử $or giống nhau đối với nhiều đối số mà một trong các biểu thức phải đúng. Truy vấn cho nhiều đối số trong toán tử $or được đưa ra như sau:

db.Patients.find ( { 'Cuộc hẹn' : 'bác sĩ tim mạch' , $ hoặc : [ { 'Tuổi' : hai mươi } , { 'Tuổi' : 35 } , { 'Tuổi' : 69 } ] } )

Ở đó, chúng tôi có hai kết quả phù hợp được lấy từ toán tử $or. Các giá trị “Tuổi” là “35” và “69” được so sánh với các tài liệu “Bệnh nhân” do toán tử $or thu được và được hiển thị trên trình bao.

Ví dụ 4: MongoDB $OR Toán tử với Aggregation

Phương thức tổng hợp trong MongoDB kết hợp các bản ghi thành một bộ sưu tập. Do đó, chúng có thể được sử dụng cho các hoạt động khác nhau. Chúng tôi thực hiện toán tử $or trong phương thức tổng hợp để đánh giá một hoặc nhiều biểu thức và trả về giá trị true nếu bất kỳ biểu thức nào trong số chúng được đánh giá là đúng. Nếu không, tuyên bố được coi là sai.

Chúng ta hãy có truy vấn toán tử tổng hợp $or trong đó trước tiên chúng ta gọi phương thức tổng hợp (), sau đó triển khai $match và $project được chỉ định với giá trị _id sẽ được so khớp từ tài liệu. Sau đó, chúng tôi đặt trường “Tuổi” với giá trị là “1” vì chúng tôi chỉ muốn trường này được tạo từ tất cả các tài liệu. Sau đó, chúng tôi xác định thuộc tính “Kết quả” có hoạt động $or. Toán tử $or nhận câu lệnh điều kiện của $gt. Biểu thức “$gt:[“$Age”, 69]” cho biết độ tuổi có giá trị lớn hơn “69”. Kết quả cho biểu thức này được chuyển đến toán tử $or và toán tử $or trả về tài liệu đáp ứng điều kiện đã chỉ định.

db.Patients.aggregate (
[
{ $match : { _id: Đối tượngId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ dự án $ : {
_id: Đối tượngId ( '6391c61a4c91e007fb4f0227' ) ,
Tuổi: một ,
Kết quả: { $ hoặc : [
{ $gt : [ ' $Tuổi ' , 69 ] }
] }
}
}
]
)

“Tuổi” lớn hơn “69” là “74” được hiển thị trong trình bao đầu ra cùng với “Kết quả” có giá trị “đúng”.

Ví dụ 5: Toán tử MongoDB $OR gọi Điều kiện

Toán tử $or của MongoDB là một toán tử logic. Chúng ta có thể sử dụng toán tử logic này với toán tử điều kiện. Toán tử $or trả về kết quả khi các điều kiện được thỏa mãn. Ngoài ra, chúng ta có thể gọi nhiều hơn một điều kiện trong toán tử $or mà từ đó một điều kiện phải đúng. Ở đây, chúng tôi có một truy vấn toán tử $or được chỉ định với hai điều kiện khác nhau. Điều kiện đầu tiên là “{Charges:{$lt: 6000}}” trả về tài liệu nhỏ hơn giá trị “Charges” là “6000”. Điều kiện {Charges:“$gt: 7000”} lấy tài liệu lớn hơn giá trị “Charges” là “7000”.

Toán tử $or đưa ra tài liệu phù hợp khi các điều kiện này được thỏa mãn. Sau đó, chúng tôi chỉ định tên của các trường chỉ được hiển thị khi toán tử $or đưa ra tài liệu phù hợp.

db.Patients.find ( {
$ hoặc : [
{ phí: { $lt : 6000 } } ,
{ phí: { $gt : 7000 } }
]
} , {
Tên đầu tiên: một ,
phí: một
} )

Đầu ra chỉ hiển thị các trường “FirstName” và “Charges” cho các tài liệu phù hợp.

Ví dụ 6: Toán tử MongoDB $OR không có đối số

Tất cả các truy vấn đã triển khai với toán tử $or đều được chuyển với giá trị đối số. Bây giờ, chúng tôi xác định truy vấn toán tử $or không nhập đối số. Khi đối số trống $or truy vấn toán tử được thực thi, nó sẽ đánh giá kết quả sai. Chúng tôi đưa ra một truy vấn trong đó thao tác $or được chuyển với biểu thức trống.

db.Patients.aggregate (
[
{ $match : { _Tôi: { $in : [ ID đối tượng ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ dự án $ : {
_id: Đối tượngId ( '6391c61a4c91e007fb4f0227' ) ,
Kết quả: { $ hoặc : [ ] } }
}
]
)

Do toán tử $or được cung cấp một đối số trống, kết quả cho biết một giá trị sai.

Ví dụ 7: Toán tử MongoDB $OR khớp với các giá trị mảng

Chúng tôi chèn mảng “Thử nghiệm” vào các tài liệu có các giá trị khác nhau. Chúng tôi sử dụng mảng đó cho toán tử $or để kiểm tra kết quả. Toán tử $or trong truy vấn sau được gọi bên trong phương thức find(). Toán tử $or lấy mảng “Kiểm tra” làm biểu thức. Mảng “Thử nghiệm” sử dụng toán tử $in để xác định các tài liệu có giá trị trường khớp với giá trị “MRI” và “CT” trong mảng.

db.Patients.find ( { $ hoặc : [ { Bài kiểm tra: { $in : [ 'MRI' , 'CT' ] } } ] } ) .đẹp ( )

Một tài liệu được hiển thị trên trình bao khi toán tử truy vấn $or được thực thi, điều này cho thấy rằng tài liệu đã truy xuất chứa các giá trị mảng đã chỉ định.

Phần kết luận

Bài viết MongoDB này minh họa việc sử dụng truy vấn toán tử $or MongoDB để thực thi các phép toán OR logic trên một mảng bao gồm hai hoặc nhiều biểu thức cũng như để 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. Toán tử $or được truy vấn trong trình bao MongoDB để thực hiện các hoạt động khác nhau. Toán tử $or được sử dụng trong các toán tử có điều kiện dưới dạng một biểu thức và trả về các tài liệu dựa trên các câu lệnh có điều kiện.