Database

[{"type":"A","name":"anil","logins":[{"at":"2-3-2019","device":"mobile"},{"at":"3-3-2019","device":"desktop"},{"at":"4-3-2019","device":"tab"},{"at":"5-3-2019","device":"mobile"}]},{"type":"A","name":"rakesh","logins":[{"at":"2-3-2019","device":"desktop"},{"at":"3-3-2019","device":"mobile"},{"at":"4-3-2019","device":"desktop"},{"at":"5-3-2019","device":"tab"}]},{"type":"A","name":"rahul","logins":[{"at":"2-3-2019","device":"tab"},{"at":"3-3-2019","device":"mobile"},{"at":"4-3-2019","device":"tab"},{"at":"5-3-2019","device":"tab"}]}]

Query

db.collection.aggregate([{"$addFields":{"logins":{$arrayToObject:{"$map":{"input":{"$setUnion":["$logins.device"]},"as":"m","in":{"k":"$$m","v":{$divide:[{$multiply:[{"$size":{"$filter":{"input":"$logins","as":"d","cond":{"$eq":["$$d.device","$$m"]}}}},100]},{$size:"$logins"}]}}}}}}}])

Result