Logical Operators

In MongoDB, logical operators are used to filter the results of queries based on multiple conditions. These operators provide flexibility to perform complex comparisons and create more sophisticated queries. The key logical operators in MongoDB are:

Below is a brief explanation of each operator along with examples.

$and

The $and operator is used to combine multiple conditions in a query, and will only return documents where all the conditions are met. The syntax is as follows:

{ $and: [ { condition1 }, { condition2 }, ... ] }

Example:

db.collection_name.find({ $and: [{ key1: value1 }, { key2: value2 }] });

In this example, only documents that have both key1 as value1 and key2 as value2 would be returned.

$or

The $or operator is used to return documents where at least one of the specified conditions is true. The syntax is as follows:

{ $or: [ { condition1 }, { condition2 }, ... ] }

Example:

db.collection_name.find({ $or: [{ key1: value1 }, { key2: value2 }] });

In this example, documents that have either key1 as value1 or key2 as value2 would be returned.

$not

The $not operator is used to negate a condition, so only documents where the specified condition is not true will be returned. The syntax is as follows:

{
  key: {
    $not: {
      operator_expression;
    }
  }
}

Example:

db.collection_name.find({ key1: { $not: { $eq: value1 } } });

In this example, only documents where key1 is not equal to value1 would be returned.

$nor

The $nor operator is used to return documents where none of the specified conditions are true. The syntax is as follows:

{ $nor: [ { condition1 }, { condition2 }, ... ] }

Example:

db.collection_name.find({ $nor: [{ key1: value1 }, { key2: value2 }] });

In this example, only documents where key1 is not equal to value1 and key2 is not equal to value2 would be returned.