Can not use positional operator while searching

Hello,

Due to a poor design choice on my part I m now querying a single document with a bunch of subdocuments.
I am able to return just the single subdocument using doc.$ in the projection

Now that I m trying to search said document using $or filter I get:
Executor error during find command :: caused by :: positional operator ‘.$’ couldn’t find a matching element in the array

If I try and use a text index i get:
$text is not allowed in this context
unless I remove the projection

What are my options ?

Momchil