Para la primera parte, debería poder recuperar ese registro haciendo:
db.collectionName.find({"attributes.id": 1, "attributes.value": 150});
Eso recuperará solo el campo _id de cualquier objeto que tenga un elemento de la matriz de atributos que tenga id =1 y valor =150.
Dado que la segunda parte de su pregunta implica devolver un recuento de coincidencias, debe explorar sus opciones con map -reducir . No puede producir ese resultado con una simple consulta de Mongo.