You can use aggregation framework to do that since your example in the question won't yield the results you are describing.
Here is the query you can use for every query that is given to your server
collection.aggregate([
{ $skip : s },
{ $match : { index : { $all : patterns } } },
{ $limit : t}
])