Database
[{"_id":ObjectId("5cbf702f272079236595cbe0"),"startTime":ISODate("2018-02-06T12:36:33Z"),"endTime":ISODate("2018-02-06T12:59:04Z")}]
Query
db.collection.aggregate([{$project:{seconds:{$let:{vars:{totalMs:{$max:[0,{$subtract:[{"$min":["$endTime",ISODate("2018-02-06T15:59:04.000Z")]},{$max:["$startTime",ISODate("2018-02-06T12:58:04.000Z")]}]}]}},in:{$divide:["$$totalMs",1000]}}}}}])