In MongoDB query, Dot notation is to match by specific fields in an embedded document. When the field holds an array of embedded documents, then to match the field, concatenate the name of the field that contains the array, with a dot (.) and the name of the field in the embedded document.
{ <array field name>.<embedded document field> : <value> }
To specify multiple criteria on an array of embedded documents such that AT LEAST ONE embedded document satisfies all the specified criteria, $elemMatch operator is used.
{ <array field name>: { $elemMatch: { <query1>, <query2>, ... } } }
Let us take an example to understand it. Consider schoolinfo collection includes following documents