Database
[{blogCode:"B0001",publishDate:"2020-09-21"},{blogCode:"B0002",publishDate:"2020-09-22"},{blogCode:"B0003",publishDate:"2020-09-13"},{blogCode:"B0004",publishDate:"2020-09-24"},{blogCode:"B0005",publishDate:"2020-09-05"}]
Query
db.collection.aggregate([{$sort:{"publishDate":1},},{$group:{_id:1,root:{$push:"$$ROOT"}},},{$unwind:{path:"$root",includeArrayIndex:"rownum"}},{$replaceRoot:{newRoot:{$mergeObjects:["$root",{rownum:"$rownum"}]}}},{$facet:{currRow:[{$match:{blogCode:"B0004"},},{$project:{rownum:1}}],root:[{$match:{blogCode:{$exists:true}}},]}},{$project:{currRow:{$arrayElemAt:["$currRow",0]},root:1}},{$project:{rownum:{prev:{$add:["$currRow.rownum",-1]},next:{$add:["$currRow.rownum",1]}},root:1}},{$unwind:"$root"},{$facet:{prev:[{$match:{$expr:{$eq:["$root.rownum","$rownum.prev"]}}},{$replaceRoot:{newRoot:"$root"}}],next:[{$match:{$expr:{$eq:["$root.rownum","$rownum.next"]}}},{$replaceRoot:{newRoot:"$root"}}],}},{$project:{prev:{$arrayElemAt:["$prev",0]},next:{$arrayElemAt:["$next",0]},}},])