MongoTemplate数组查询
2018-02-08 20:18
363 查看
/** * 按时间范围、最大最小经纬度检索(矩形查询) * * @param timeRange * 开始时间,结束时间中间逗号隔开,必填 yyyyMMddHH * @param lat * 纬度,可选 * @param lon * 经度,可选 * @param vars * 要素,如pre_3h、u、v、snow_3h、tem_max、tem_min、temp * @return * @throws ParseException */ public List<RefineGridPoint243> getRefineGridPoint243InAreaByTimeRange(String timeRange, double maxLon, double maxLat, double minLon, double minLat, String vars)throws ParseException { String[] times = timeRange.split(","); DBObject dbObject = new BasicDBObject(); if (times.length > 1) { dbObject.put("qbtime", new BasicDBObject("$gte", times[0]).append("$lte", times[1])); } else { dbObject.put("qbtime", new BasicDBObject("$gte", timeRange).append("$lte", timeRange)); } if (vars != null) { String[] var = vars.split(","); dbObject.put("var", new BasicDBObject("$in", var)); } int[] maxnum = GRB2ParseUtil.getIndex(maxLat, maxLon); int[] minnum = GRB2ParseUtil.getIndex(minLat, minLon); if (maxnum != null&&minnum!=null) { dbObject.put("lat", new BasicDBObject("$gte", minnum[0]).append("$lte", maxnum[0])); } Query query = new BasicQuery(dbObject, null); if (maxnum != null&&minnum!=null) { query.fields().slice("value", minnum[1], maxnum[1]-minnum[1]+1); } return mongoTemplate.find(query, RefineGridPoint243.class, "RefineGridPoint243"); }
private static final double interval = 0.05;// 经纬度间隔 public static final double minLat = 34.25; public static final double maxLat = 38.55; public static final double maxLon = 122.80; public static final double minLon = 114.65; public static int[] getIndex(double lat, double lon) { if (lat >= minLat && lat <= maxLat && lon >= minLon && lon <= maxLon) { double latnum = (lat - minLat) / interval; double lonnum = (lon - minLon) / interval; return new int[] { (int) Math.rint(latnum), (int) Math.rint(lonnum) }; } return null; }
相关文章推荐
- mongotemplate criteria查询
- MongoTemplate之分组分页复合条件查询
- MongoTemplate针对多条件查询以及复杂查询基本示例
- spring-mongo-template中对内嵌集合对象 不定参数的查询
- mongotemplate mongodb的各种操作 模糊查询 精确查询 等等
- MongoTemplate——spring data 查询mongdb数据
- mongoTemplate查询
- mongotemplate mongodb的各种操作 模糊查询 精确查询 等等
- mongo3.2 数组索引作为联合索引的一部分导致的范围查询问题
- mongo 查询 数组 查 数组 存在 即命中查询
- MongoTemplate多要素模糊查询
- mongo数组长度 数组内容 查询
- mongo-查询(5)——查询数组
- MongoTemplate圆型查询
- mongo数组长度 数组内容 查询
- [数据库]MongoTemplate之分组分页复合条件查询
- MongoTemplate查询 Criteria对象代表的是查询条件
- Spring MongoTemplate复杂查询分页排序
- mongotemplate mongodb的各种操作 模糊查询 精确查询 等等
- mongoTemplate更新一个Document里面的数组的一个记录。