MongoDB AND operator ( $and )
MongoDB provides different types of logical query operators and $and operator is one of them. This operator is used to perform logical AND operation on the array of one or more expressions and select or retrieve only those documents that match all the given expression in the array. You can use this operator in methods like find(), update(), etc. according to your requirements.
- This operator performs short-circuit evaluation.
- If the first expression of $and operator evaluates to false, then MongoDB will not evaluate the remaining expressions in the array.
- You can also use AND operation implicitly with the help of comma(, ).
- You can use AND operation explicitly (i.e., $and) when the same field or operator specified in multiple expressions.
Syntax:
{ $and: [ { Expression1 }, { Expression2 }, ..., { ExpressionN } ] } or { { Expression1 }, { Expression2 }, ..., { ExpressionN }}
Examples: 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 $and operator:
In this example, we are retrieving only those employee’s documents whose branch is CSE and joiningYear is 2018.
Python3
db.contributor.find({$ and : [{branch: "CSE"}, {joiningYear: 2018 }]}).pretty() |
Using $and operator with multiple expressions specifying the same field :
In this example, we are retrieving only those employee’s documents whose branch is CSE.
Python3
db.contributor.find({$ and : [{branch: {$eq: "CSE"}}, {branch: {$exists: true}}]}).pretty() |
or
Python3
db.contributor.find({branch: {$eq: "CSE", $exists: true}}).pretty() |
Using $and operator with multiple expressions specifying the same operator :
In this example, we are retrieving only those employee’s documents whose satisfy the given conditions.
Python3
db.contributor.find({$ and : [{$ or : [{branch: "ECE"}, {joiningYear: 2017 }]}, {$ or : [{"personal.state": "UP"}, {"personal.age": 25 }]}]}).pretty() |
Contact Us