long start = System.currentTimeMillis();
Bson orderBy = new BasicDBObject("crtDate", 1);
Bson gteDate = Filters.gte("crtDate","2014-01-10 00:00:00.0");
Bson lteDate = Filters.lte("crtDate","2015-07-20 00:00:00.0");
Bson userName = Filters.eq("userName", "hexun123");
List<Bson> queryList = new ArrayList<Bson>();
queryList.add(gteDate);
queryList.add(lteDate);
queryList.add(userName);
FindIterable<Document> iter = collection.find(Filters.and(queryList)).sort(orderBy).limit(10);
System.out.println(System.currentTimeMillis()-start);
iter.forEach(new Block<Document>() {
@Override public void apply(final Document document) {
System.out.println(document); }
});