Database

[{"_id":ObjectId("62f8199dc1e8c0f11820cb91"),"name":"foo","score":4500,"searchable":[{"title":"blah","date":"some_date","search_text":"Blah blah blah ...."},{"title":"bleep","date":"some_date","search_text":"Lorem Lorem Lorem ...."},{"title":"bloop","date":"some_date","search_text":"Ipsum Ipsum Ipsum ...."},{"title":"bloop","date":"some_date","search_text":"Lorem Ipsum Ipsum ...."}]},]

Query

db.collection.aggregate([{$match:{"searchable.search_text":{$regex:"Lorem"},score:{$gte:3000,$lte:5000}}},{$project:{documentID:"$_id",_id:0,searchable:{$map:{input:{$filter:{input:{"$map":{"input":{$zip:{inputs:["$searchable",{"$range":[0,{$size:"$searchable"}]}]}},in:{"$mergeObjects":[{"$arrayElemAt":["$$this",0]},{index:{"$arrayElemAt":["$$this",1]}}]}}},cond:{"$regexMatch":{"input":"$$this.search_text","regex":"Lorem",}}}},in:"$$this.index"}}}}])

Result