Voor het eerste deel zou je dat record moeten kunnen ophalen door het volgende te doen:
db.collectionName.find({"attributes.id": 1, "attributes.value": 150});
Dat haalt alleen het _id-veld op van elk object dat een element van de attributenarray heeft met id =1 en value =150.
Aangezien het tweede deel van uw vraag betrekking heeft op het retourneren van een telling van overeenkomsten, moet u uw opties verkennen met map -verminderen . U kunt dat resultaat niet produceren met een eenvoudige Mongo-query.