Database
[{"categories":[{"subCategories":[],"key":"CONSULTANT_AGREEMENT"}]},{"categories":[{"subCategories":[{"key":"value"}],"key":"CONSULTANT_AGREEMENT"},{"subCategories":[],"key":"CONSULTANT_AGREEMENT"}]},{"categories":[{"subCategories":[{"key":"value"}],"key":"OTHER_VALUE"}]},{"categories":[{"subCategories":[{"key":"value"}],"key":"OTHER"},{"subCategories":[],"key":"CONSULTANT_AGREEMENT"}]},]
Query
db.collection.aggregate([{$match:{"categories":{$elemMatch:{"key":"CONSULTANT_AGREEMENT","subCategories":{$size:1}}}}},{$project:{"eg":{$filter:{input:"$categories",as:"category",cond:{$eq:[{$size:"$$category.subCategories"},1]}}}}}])