MongoDB compound conditions to fetch documents?

MongoDB compound conditions allow you to fetch documents by combining multiple criteria using logical operators. This enables complex filtering with AND, OR, and other conditional operators.

Syntax

// AND condition (implicit)
db.collection.find({field1: "value1", field2: "value2"})

// OR condition
db.collection.find({$or: [{field1: "value1"}, {field2: "value2"}]})

// IN operator for multiple values
db.collection.find({field: {$in: ["value1", "value2"]}})

Sample Data

db.demo714.insertMany([
    {FirstName: "Chris", LastName: "Brown"},
    {FirstName: "Adam", LastName: "Smith"},
    {FirstName: "David", LastName: "Miller"},
    {FirstName: "John", LastName: "Doe"}
]);
{
   "acknowledged": true,
   "insertedIds": [
      ObjectId("5ea9a2da85324c2c98cc4c2b"),
      ObjectId("5ea9a2e585324c2c98cc4c2c"),
      ObjectId("5ea9a2ed85324c2c98cc4c2d"),
      ObjectId("5ea9a2f785324c2c98cc4c2e")
   ]
}

Display All Documents

db.demo714.find();
{ "_id": ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName": "Chris", "LastName": "Brown" }
{ "_id": ObjectId("5ea9a2e585324c2c98cc4c2c"), "FirstName": "Adam", "LastName": "Smith" }
{ "_id": ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName": "David", "LastName": "Miller" }
{ "_id": ObjectId("5ea9a2f785324c2c98cc4c2e"), "FirstName": "John", "LastName": "Doe" }

Method 1: Using $in Operator

Find documents where LastName is either "Miller" or "Brown" ?

db.demo714.find({"LastName": {$in: ["Miller", "Brown"]}});
{ "_id": ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName": "Chris", "LastName": "Brown" }
{ "_id": ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName": "David", "LastName": "Miller" }

Method 2: Using $or Operator

Achieve the same result using explicit OR condition ?

db.demo714.find({
    $or: [
        {"LastName": "Miller"},
        {"LastName": "Brown"}
    ]
});

Method 3: AND Condition

Find documents matching multiple fields simultaneously ?

db.demo714.find({"FirstName": "Chris", "LastName": "Brown"});
{ "_id": ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName": "Chris", "LastName": "Brown" }

Conclusion

MongoDB compound conditions enable precise document filtering using $in, $or, and implicit AND operators. Use $in for checking multiple values in one field, and $or for complex multi-field conditions.

Updated on: 2026-03-15T03:41:34+05:30

170 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements