Database
[{"title":"Data 1","slug":"data-1","sub_docs":[{"name":"Sub Doc 0","sub_slug":"sub-doc-0","urls":["https://example.com/path-0",]},{"name":"Sub Doc 1","sub_slug":"sub-doc-1","urls":["https://example.com/path-1",]},{"name":"Sub Doc 2","sub_slug":"sub-doc-2","urls":["https://example.com/path-2"]},{"name":"Sub Doc 3","sub_slug":"sub-doc-3","urls":["https://example.com/path-3",]},{"name":"Sub Doc 4","sub_slug":"sub-doc-4","urls":["https://example.com/path-4",]}]}]
Query
db.collection.aggregate([{"$match":{"slug":"data-1"/** given argument*/}},{"$set":{"reduceOut":{"$reduce":{"input":"$sub_docs","initialValue":{"sub_doc_title":null,"urls":[],"prev":null,"next":null},"in":{"$cond":[{"$eq":["$$this.sub_slug","sub-doc-2"/** given argument*/]},{"$mergeObjects":["$$value",{"sub_doc_title":"$$this.name","urls":"$$this.urls"}]},{"$cond":[{"$eq":["$$value.sub_doc_title",null]},{"$mergeObjects":["$$value",{"prev":{"name":"$$this.name","sub_slug":"$$this.sub_slug"}}]},{"$cond":[{"$eq":["$$value.next",null]},{"$mergeObjects":["$$value",{"next":{"name":"$$this.name","sub_slug":"$$this.sub_slug"}}]},"$$value"]}]}]}}}}},{"$replaceWith":{"$mergeObjects":[{"title":"$title"},"$reduceOut"]}}])