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 by sub-field?
To query by subfield in MongoDB, use dot notation to access nested document fields. This allows you to search for specific values within embedded documents using the field.subfield syntax.
Syntax
db.collection.find({ "parentField.childField": "value" })
Sample Data
Let's create sample documents with nested fields ?
db.queryBySubFieldDemo.insertMany([
{
"StudentPersonalDetails": {
"StudentName": "John",
"StudentHobby": "Photography"
},
"StudentScores": {
"MathScore": 56
}
},
{
"StudentPersonalDetails": {
"StudentName": "Chris",
"StudentHobby": "Reading"
},
"StudentScores": {
"MathScore": 97
}
}
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5c92c2995259fcd195499808"),
ObjectId("5c92c2df5259fcd195499809")
]
}
View Sample Data
db.queryBySubFieldDemo.find().pretty();
{
"_id": ObjectId("5c92c2995259fcd195499808"),
"StudentPersonalDetails": {
"StudentName": "John",
"StudentHobby": "Photography"
},
"StudentScores": {
"MathScore": 56
}
}
{
"_id": ObjectId("5c92c2df5259fcd195499809"),
"StudentPersonalDetails": {
"StudentName": "Chris",
"StudentHobby": "Reading"
},
"StudentScores": {
"MathScore": 97
}
}
Query by Subfield
Find documents where the nested StudentName is "Chris" ?
db.queryBySubFieldDemo.find({
"StudentPersonalDetails.StudentName": "Chris"
}).pretty();
{
"_id": ObjectId("5c92c2df5259fcd195499809"),
"StudentPersonalDetails": {
"StudentName": "Chris",
"StudentHobby": "Reading"
},
"StudentScores": {
"MathScore": 97
}
}
Multiple Subfield Queries
Query multiple nested fields simultaneously ?
db.queryBySubFieldDemo.find({
"StudentPersonalDetails.StudentHobby": "Photography",
"StudentScores.MathScore": { $gt: 50 }
});
Conclusion
Dot notation provides a simple way to query nested document fields in MongoDB. Use "parentField.childField" syntax to access any level of nested data for precise document matching.
Advertisements
