To search a sub-filed in MongoDB, you can use double quotes along with dot notation. Let us first create a collection with documents −
> db.searchSubFieldDemo.insertOne(
... {
... "UserDetails":
... {"UserEmailId":"[email protected]","UserAge":21}
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd3d909edc6604c74817ce2")
}
> db.searchSubFieldDemo.insertOne( { "UserDetails": {"UserEmailId":"[email protected]","UserAge":26} } );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd3d9a4edc6604c74817ce3")
}Following is the query to display all documents from a collection with the help of find() method −
> db.searchSubFieldDemo.find().pretty();
This will produce the following output −
{
"_id" : ObjectId("5cd3d909edc6604c74817ce2"),
"UserDetails" : {
"UserEmailId" : "[email protected]",
"UserAge" : 21
}
}
{
"_id" : ObjectId("5cd3d9a4edc6604c74817ce3"),
"UserDetails" : {
"UserEmailId" : "[email protected]",
"UserAge" : 26
}
}Following is the query to search a sub-field on MongoDB −
> db.searchSubFieldDemo.find({"UserDetails.UserEmailId":"[email protected]"});This will produce the following output −
{ "_id" : ObjectId("5cd3d9a4edc6604c74817ce3"), "UserDetails" : { "UserEmailId" : "[email protected]", "UserAge" : 26 } }