Database

[{arrayField:[{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value1"},{fieldA:"value2"},{fieldA:"value2"}]}]

Query

db.collection.aggregate([{"$addFields":{"newArrayField":{"$map":{"input":{"$setUnion":["$arrayField.fieldA"]},"as":"m","in":{"fieldA":"$$m","count":{"$size":{"$filter":{"input":"$arrayField","as":"d","cond":{"$eq":["$$d.fieldA","$$m"]}}}}}}}}}])

Result