Database
[{FullName:"Emily Clark",Details:{Income:[{2021:[{time:"Sun Apr 11 2021 17:42:39 GMT+0530 (India Standard Time)",description:"Web",amount:"3700"},{time:"Sun May 21 2022 07:12:59 GMT+0530 (India Standard Time)",description:"Pc Monitor",amount:"45000"}]},{2022:[{time:"Sat May 28 2022 12:23:34 GMT+0530 (India Standard Time)",description:"Class",amount:"4100"}]}],Expense:[{2022:[{time:"Tue May 17 2022 20:30:39 GMT+0530 (India Standard Time)",descritption:"Car Wash",amount:4000},{time:"Fri May 19 2022 10:23:29 GMT+0530 (India Standard Time)",description:"Loundry",amount:"300"}]}]}}]
Query
db.collection.update({FullName:"Emily Clark"},[{$addFields:{newItem:{a:"test"},year:"2022"}},{$addFields:{lastYear:{$reduce:{input:{$objectToArray:{$last:"$Details.Income"}},initialValue:"",in:{$concat:["$$value","$$this.k"]}}}}},{$addFields:{newArr:{$cond:[{$eq:["$lastYear","$year"]},[],[{2022:[]}]]}}},{$set:{"Details.Income":{$concatArrays:["$Details.Income","$newArr"]},year:"$$REMOVE",newArr:"$$REMOVE"}},{$set:{last:{$objectToArray:{$last:"$Details.Income"}},"Details.Income":{$slice:["$Details.Income",{$subtract:[{$size:"$Details.Income"},1]}]}}},{$set:{last:{$map:{input:"$last",as:"item",in:{v:{$concatArrays:["$$item.v",["$newItem"]]},k:"$$item.k"}}}}},{$set:{last:{"$arrayToObject":["$last"]}}},{$set:{"Details.Income":{$concatArrays:["$Details.Income",["$last"]]},last:"$$REMOVE",newItem:"$$REMOVE",lastYear:"$$REMOVE"}}])