protected FindIterable<Document> createCursor(MongoCollection<Document> collection, @Nullable Predicate where,
                                                  Expression<?> projection, QueryModifiers modifiers, List<OrderSpecifier<?>> orderBy) {

        ReadPreference readPreference = getReadPreference();
        MongoCollection<Document> collectionToUse = readPreference != null ? collection
                .withReadPreference(readPreference) : collection;
        FindIterable<Document> cursor = collectionToUse.find(createQuery(where))
                .projection(createProjection(projection));
        Integer limit = modifiers.getLimitAsInteger();
        Integer offset = modifiers.getOffsetAsInteger();

        if (limit != null) {
            cursor = cursor.limit(limit);
        }
        if (offset != null) {
            cursor = cursor.skip(offset);
        }
        if (orderBy.size() > 0) {
            cursor = cursor.sort(getSerializer().toSort(orderBy));
        }
        return cursor;
    }
Fetch results with the specific fields

@param paths fields to return
@return results
querydsl-mongodb/src/main/java/com/querydsl/mongodb/document/AbstractFetchableMongodbQuery.java