Database

[{"delivery":[{"status":"Not Started","createdAt":{"$date":"2020-12-21T03:50:33.877Z"},"updatedAt":{"$date":"2020-12-21T03:50:33.877Z"}},{"status":"Accepted","updatedAt":{"$date":"2020-12-21T03:51:20.915Z"},"createdAt":{"$date":"2020-12-21T03:51:20.915Z"}},{"status":"Ongoing","updatedAt":{"$date":"2020-12-21T03:52:40.087Z"},"createdAt":{"$date":"2020-12-21T03:52:40.087Z"}},{"status":"Ended","updatedAt":{"$date":"2020-12-21T03:52:40.087Z"},"createdAt":{"$date":"2020-12-21T04:00:40.087Z"}}]}]

Query

db.collection.aggregate([{"$addFields":{"start":{"$reduce":{"input":"$delivery","initialValue":null,"in":{"$cond":{"if":{$eq:["$$this.status","Not Started"]},"then":"$$this.createdAt","else":"$$value"}}}},"end":{"$reduce":{"input":"$delivery","initialValue":null,"in":{"$cond":{"if":{$eq:["$$this.status","Accepted"]},"then":"$$this.updatedAt","else":"$$value"}}}}}},{"$addFields":{"difference":{"$divide":[{"$subtract":["$end","$start"]},3600000]}}}])

Result