Database

[{"_id":"111","studentID":"1","loginTime":"2019-05-01 09:40:00","logoutTime":"2019-05-01 19:40:00"},{"_id":"222","studentID":"1","loginTime":"2019-05-02 09:40:00","logoutTime":"2019-05-02 20:40:00"},{"_id":"333","studentID":"2","loginTime":"2019-05-02 09:40:00","logoutTime":"2019-05-02 20:40:00"}]

Query

db.collection.aggregate([{$addFields:{loginTime:{$dateFromString:{dateString:"$loginTime"}},logoutTime:{$dateFromString:{dateString:"$logoutTime"}}}},{$addFields:{difference:{$divide:[{$subtract:["$logoutTime","$loginTime"]},3600000]}}},{$group:{_id:"$studentID",totalDifference:{$sum:"$difference"}}},{$match:{totalDifference:{$gte:20}}}])

Result