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}},{$facet:{origin:[{$match:{blogCode:"B0004"}}],rest:[{$match:{$expr:{$ne:["$blogCode","B0004"]}}}]}},{$project:{origin:{$arrayElemAt:["$origin",0]},rest:1}},{$unwind:{path:"$rest"}},{$project:{diff:{$subtract:[{$toDate:"$rest.publishDate"},{$toDate:"$origin.publishDate"}]},rest:1,origin:1}},{$facet:{prev:[{$sort:{diff:-1}},{$match:{diff:{$lt:0}}},{$limit:1},{$addFields:{"rest.type":"PREV"}}],next:[{$sort:{diff:1}},{$match:{diff:{$gt:0}}},{$limit:1},{$addFields:{"rest.type":"NEXT"}}]}},{$project:{combined:{$concatArrays:["$prev","$next"]}}},{$unwind:{path:"$combined"}},{$replaceRoot:{newRoot:"$combined.rest"}}])