Database

[{"_id":ObjectId("5e4889a7c7959f6a13039902"),"presenceStatus":1,"createdAt":ISODate("2020-02-16T00:14:35.121Z"),"updatedAt":ISODate("2020-02-16T00:14:35.121Z"),"__v":0},{"_id":ObjectId("5e4889a7c7959f6a1303990c"),"presenceStatus":1,"createdAt":ISODate("2020-02-16T00:15:35.121Z"),"updatedAt":ISODate("2020-02-16T00:15:35.121Z"),"__v":0},{"_id":ObjectId("5e4889a9c7959f6a1303995c"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:37.000Z"),"createdAt":ISODate("2020-02-16T00:15:37.420Z"),"updatedAt":ISODate("2020-02-16T00:15:37.420Z"),"__v":0},{"_id":ObjectId("5e4889b0c7959f6a130399ff"),"presenceStatus":1,"createdAt":ISODate("2020-02-16T00:15:44.316Z"),"updatedAt":ISODate("2020-02-16T00:15:44.316Z"),"__v":0},{"_id":ObjectId("5e4889b3c7959f6a13039a58"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:47.000Z"),"createdAt":ISODate("2020-02-16T00:15:47.181Z"),"updatedAt":ISODate("2020-02-16T00:15:47.181Z"),"__v":0},{"_id":ObjectId("5e4889b5c7959f6a13039aad"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:49.000Z"),"createdAt":ISODate("2020-02-16T00:15:49.545Z"),"updatedAt":ISODate("2020-02-16T00:15:49.545Z"),"__v":0},{"_id":ObjectId("5e4889b9c7959f6a13039b28"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:53.000Z"),"createdAt":ISODate("2020-02-16T00:15:53.389Z"),"updatedAt":ISODate("2020-02-16T00:15:53.389Z"),"__v":0},{"_id":ObjectId("5e4889bcc7959f6a13039b78"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:56.000Z"),"createdAt":ISODate("2020-02-16T00:15:56.007Z"),"updatedAt":ISODate("2020-02-16T00:15:56.007Z"),"__v":0},{"_id":ObjectId("5e4889bfc7959f6a13039c00"),"presenceStatus":1,"sensingTime":ISODate("2020-02-16T00:15:59.000Z"),"createdAt":ISODate("2020-02-16T00:15:59.619Z"),"updatedAt":ISODate("2020-02-16T00:15:59.619Z"),"__v":0},{"_id":ObjectId("5e4889c2c7959f6a13039c4a"),"presenceStatus":0,"sensingTime":ISODate("2020-02-16T00:16:02.000Z"),"createdAt":ISODate("2020-02-16T00:16:02.100Z"),"updatedAt":ISODate("2020-02-16T00:16:02.100Z"),"__v":0},{"_id":ObjectId("5e4889c2c7959f6a13039c4b"),"presenceStatus":1,"sensingTime":ISODate("2020-03-16T00:16:02.000Z"),"createdAt":ISODate("2020-02-16T00:17:02.100Z"),"updatedAt":ISODate("2020-02-16T00:17:02.100Z"),"__v":0},{"_id":ObjectId("5e4889c2c7959f6a13039c4c"),"presenceStatus":0,"sensingTime":ISODate("2020-03-16T00:26:02.000Z"),"createdAt":ISODate("2020-03-16T00:26:02.100Z"),"updatedAt":ISODate("2020-03-16T00:26:02.100Z"),"__v":0}]

Query

db.collection.aggregate([{$lookup:{from:"collection",let:{root_id:"$_id"},pipeline:[{$match:{$expr:{$gt:["$_id","$$root_id"]}}},{$limit:1}],as:"tmp"}},{$match:{$or:[{"presenceStatus":1,"tmp.presenceStatus":0},{"presenceStatus":0,"tmp.presenceStatus":1}]}},{$group:{_id:null,data:{$push:{$mergeObjects:["$$ROOT",{tmp:{$arrayElemAt:["$tmp",0]}}]}}}},{$addFields:{data:{$map:{input:{$range:[0,{$size:"$data"},2]},as:"idx",in:{"occupiedTime":{$arrayElemAt:["$data.tmp.updatedAt",{$cond:[{$eq:[{$arrayElemAt:["$data.tmp.presenceStatus","$$idx"]},1]},"$$idx",{$add:["$$idx",1]}]}]},"vacantTime":{$arrayElemAt:["$data.tmp.updatedAt",{$cond:[{$eq:[{$arrayElemAt:["$data.tmp.presenceStatus","$$idx"]},0]},"$$idx",{$add:["$$idx",1]}]}]},"created":{$arrayElemAt:["$data.tmp.createdAt","$$idx"]},"_id":{$arrayElemAt:["$data.tmp._id","$$idx"]},"__v":0}}}}},{$unwind:"$data"},{$replaceRoot:{newRoot:"$data"}},{$addFields:{"dwellTime":{$dateToString:{date:{$toDate:{$subtract:["$vacantTime","$occupiedTime"]}},format:"%H-%M-%S"}}}}])

Result