Is there a reason you use field, value structure on the child documents? It would be easier to simply use the key as the field, like {"FamilyName": "Smith"}
. This would allow something like:
Parent.findOne({'children.FamilyName': 'Smith'}, function(err, doc){...});