Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
MongoDB query for exact match on multiple document fields
To perform exact match on multiple document fields in MongoDB, use the $in operator with $and to match specific values across different fields simultaneously.
Syntax
db.collection.find({
$and: [
{ "field1": { $in: ["value1", "value2"] } },
{ "field2": { $in: [value3, value4] } }
]
});
Create Sample Data
db.demo422.insertMany([
{ "Name": "Chris", "Marks": 34 },
{ "Name": "Chris", "Marks": 56 },
{ "Name": "David", "Marks": 78 },
{ "Name": "Sam", "Marks": 45 },
{ "Name": "David", "Marks": 89 }
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5e73a4059822da45b30346e1"),
ObjectId("5e73a40a9822da45b30346e2"),
ObjectId("5e73a4149822da45b30346e3"),
ObjectId("5e73a41e9822da45b30346e4"),
ObjectId("5e73a4239822da45b30346e5")
]
}
Display All Documents
db.demo422.find();
{ "_id": ObjectId("5e73a4059822da45b30346e1"), "Name": "Chris", "Marks": 34 }
{ "_id": ObjectId("5e73a40a9822da45b30346e2"), "Name": "Chris", "Marks": 56 }
{ "_id": ObjectId("5e73a4149822da45b30346e3"), "Name": "David", "Marks": 78 }
{ "_id": ObjectId("5e73a41e9822da45b30346e4"), "Name": "Sam", "Marks": 45 }
{ "_id": ObjectId("5e73a4239822da45b30346e5"), "Name": "David", "Marks": 89 }
Example: Exact Match on Multiple Fields
Find documents where Name is either "Chris" or "David" AND Marks is either 34 or 89 ?
db.demo422.find({
$and: [
{ "Name": { $in: ["Chris", "David"] } },
{ "Marks": { $in: [34, 89] } }
]
});
{ "_id": ObjectId("5e73a4059822da45b30346e1"), "Name": "Chris", "Marks": 34 }
{ "_id": ObjectId("5e73a4239822da45b30346e5"), "Name": "David", "Marks": 89 }
How It Works
The $and operator ensures that both conditions must be satisfied. Each field uses $in to match against multiple possible values, creating an intersection of matching documents.
Conclusion
Use $and with $in operators to perform exact matches across multiple fields. This approach efficiently filters documents that satisfy all specified field-value combinations simultaneously.
Advertisements
