Database

[{_id:ObjectId("656ce741b78f8f5fea229c4f"),year:2,name:"Student Name",grades:[{date:ISODate("2014-08-16T00:00:00.000Z"),grade:"A",score:97},{date:ISODate("2014-03-19T00:00:00.000Z"),grade:"A",score:91},{date:ISODate("2015-08-16T00:00:00.000Z"),grade:"B",score:82}]},{_id:ObjectId("656ce741b78f8f5fea229c50"),year:2,name:"all A",grades:[{date:ISODate("2014-08-16T00:00:00.000Z"),grade:"A",score:97},{date:ISODate("2014-03-19T00:00:00.000Z"),grade:"A",score:91},{date:ISODate("2015-08-16T00:00:00.000Z"),grade:"A",score:82}]},{_id:ObjectId("656ce741b78f8f5fea229c51"),year:2,name:"D, E",grades:[{date:ISODate("2014-08-16T00:00:00.000Z"),grade:"A",score:97},{date:ISODate("2014-03-19T00:00:00.000Z"),grade:"B",score:91},{date:ISODate("2015-08-16T00:00:00.000Z"),grade:"D",score:82}]}]

Query

db.collection.find({"$expr":{"$allElementsTrue":{"$map":{"input":"$grades","as":"g","in":{"$eq":["$$g.grade","A"]}}}}})

Result