Database
[{"array":[{"_id":1,"createdAt":NumberLong(1675408092026),"pType":"A"},{"_id":2,"createdAt":NumberLong(1675408097462),"pType":"B"},{"_id":3,"createdAt":NumberLong(1675408101259),"pType":"A"},{"_id":4,"createdAt":NumberLong(1675408104682),"pType":"B"}]},{"array":[{"_id":1,"createdAt":NumberLong(1675408092026),"pType":"A"},{"_id":2,"createdAt":NumberLong(1675408095026),"pType":"A"},{"_id":3,"createdAt":NumberLong(1675408097462),"pType":"B"},{"_id":4,"createdAt":NumberLong(1675408101259),"pType":"A"},{"_id":5,"createdAt":NumberLong(1675408104682),"pType":"B"},{"_id":6,"createdAt":NumberLong(1675408108682),"pType":"B"},{"_id":7,"createdAt":NumberLong(1675408118682),"pType":"A"}]}]
Query
db.collection.aggregate([{$project:{sum_of_diff:{$reduce:{input:"$array",initialValue:{lastA:{_id:-1},sum:0},in:{$mergeObjects:["$$value",{$cond:[{$eq:["$$this.pType","A"]},{lastA:"$$this"},{$cond:[{$eq:[{$subtract:["$$this._id",1]},"$$value.lastA._id"]},{sum:{$add:["$$value.sum",{$subtract:["$$this.createdAt","$$value.lastA.createdAt"]}]}},{}]}]}]}}}}},{$project:{sum_of_diff:"$sum_of_diff.sum",_id:0}}])