Database
[{"parent":"P1","tagGroups":[],},{"parent":"P1","tagGroups":[{group:1,tags:{tag1:{value:true},tag2:{value:"foo"},}},{group:2,tags:{}}]},{"parent":"P2","tagGroups":[],}]
Query
db.collection.aggregate({"$addFields":{"match":{"$cond":{if:{$eq:["$tagGroups.tags.tag1.value",true]},then:1,else:0}}}},{"$group":{"_id":"$parent","elements":{"$addToSet":"$$ROOT"},"elementsMatch":{"$sum":"$match"}}},{"$match":{"elementsMatch":{$gt:0}}},{"$unwind":"$elements"},)