// apply projections, order results, and filter duplicates
results = _factory.project(_exps[0], results, ctx, params);
results = _factory.order(_exps[0], results, ctx, params);
results = _factory.distinct(_exps[0], coll == null, results);
ResultObjectProvider rop = new ListResultObjectProvider(results);
if (range.start != 0 || range.end != Long.MAX_VALUE)
rop = new RangeResultObjectProvider(rop, range.start,range.end);
return rop;
}