public Map<String, Object> find(DBObject query, Integer page, Integer rows) throws ParseException {
DBCollection col = MongoUtil.getCollection(collection);
if (page > 0) {
page = page - 1;
} else {
page = 0;
}
Map<String, Object> result = new HashMap<String, Object>();
Integer total = col.find(query).count();
List<DBObject> list = new ArrayList<DBObject>();
if (total > 0) {
DBObject orderBy = new BasicDBObject();
orderBy.put("starttime", -1);// 降序
DBCursor cursor = col.find(query).sort(orderBy).limit(rows).skip(page * rows);
while (cursor.hasNext()) {
DBObject object = cursor.next();
object.put("liveid", object.get("_id").toString());
object.removeField("_id");
object = setLiveStatus(object);
list.add(object);
}
}
Collections.sort(list, new Comparator<DBObject>() {
public int compare(DBObject arg0, DBObject arg1) {
int result = Integer.valueOf(String.valueOf(arg0.get("statusStr"))) - Integer.valueOf(String.valueOf(arg1.get("statusStr")));
return result;
}
});
result.put("totalrows", total);
result.put("totalpage", MongoUtil.getTotalPage(rows, total));
result.put("page", page + 1);
result.put("rows", rows);
result.put("list", list);
return result;
}
本文介绍了一个基于MongoDB的Java方法实现,该方法用于执行带有分页和排序功能的查询操作。具体实现了根据查询条件获取指定集合的数据,并按开始时间降序排列,同时对查询结果的状态进行升序排序。
1396

被折叠的 条评论
为什么被折叠?



