Database
[{"_id":1,"name":"name1","rank":2},{"_id":2,"name":"name2","rank":4},{"_id":3,"name":"name3","rank":6},{"_id":4,"name":"name4","rank":8},{"_id":5,"name":"name5","rank":10},{"_id":6,"name":"name6","rank":12},{"_id":7,"name":"name7","rank":14},{"_id":8,"name":"name8","rank":16},{"_id":9,"name":"name9","rank":18},{"_id":10,"name":"name10","rank":20}]
Query
db.collection.aggregate([{"$setWindowFields":{"partitionBy":null,"sortBy":{"rank":1},"output":{nearIds:{$addToSet:"$_id",window:{documents:[-2,2]}}}}},{$match:{"name":"name6"}},{"$lookup":{"from":"collection","localField":"nearIds","foreignField":"_id","as":"nearDocs"}},{"$unwind":"$nearDocs"},{"$replaceRoot":{"newRoot":"$nearDocs"}}])