MongoDB OR operator ( $or )
MongoDB provides different types of logical query operators and $or operator is one of them. This operator is used to perform logical OR operation on the array of two or more expressions and select or retrieve only those documents that match at least one of the given expression in the array.
- You can use this operator in methods like find(), update(), etc. according to your requirements.
- You can also use this operator with text queries, GeoSpatial queries, and sort operations.
- When MongoDB evaluating the clauses in the $or expression, it performs a collection scan. Or if all the clauses in $or expression are supported by indexes, then MongoDB performs index scans.
- You can also nest $or operation.
Syntax:
{ $or: [ { Expression1 }, { Expression2 }, ..., { ExpressionN } ] }
In the following examples, we are working with:
Database: w3wiki
Collection: contributor
Document: three documents that contain the details of the contributors in the form of field-value pairs.
Matching values using $or operator:
In this example, we are retrieving only those employee’s documents whose branch is ECE or joiningYear is 2017.
Python3
db.contributor.find({$ or : [{branch: "ECE" }, {joiningYear: 2017 }]}).pretty() |
Matching values in nested/embedded documents using $or operator:
In this example, we are retrieving only those employee’s documents whose age is 24 or state is Delhi.
Python3
db.contributor.find({$ or : [{ "personal.age" : 24 }, { "personal.state" : "Delhi" }]}).pretty() |
Matching values in an array using $or operator:
In this example, we are retrieving only those employee’s documents that at least match one of value in the given array.
Python3
db.contributor.find({$ or : [{language: {$ in : [ "Java" , "C" ]}}]}).pretty() |
Contact Us