1.简介
查了好多关于MongoDB的文字,大部分基于数据库的,很少有Template的,这里总结下
2.实现代码
static MongoTemplate mongo = MongoInstance.getMongo();
Query query=new Query(Criteria.where("operationCode").is("b1"));
List<Document> collection = mongo.find(query, Document.class,logName);
int i=0;
int jvmTotal=0;
int jvmUsed = 0;
for(Document c:collection){
// System.out.println(c.get("jvmTotal").toString());
jvmTotal =+ Integer.valueOf(c.get("jvmTotal").toString());
i++;
jvmUsed =+Integer.valueOf(c.get("jvmUsed").toString());
}
Document doc = new Document();
doc.put("projectCode",ServerMonitorFormatter.proCode);
doc.put("operationCode", ServerMonitorFormatter.serviceCode.b1.toString());
doc.put("controlCode", ServerMonitorFormatter.controlCode);
doc.put("logLevel", ServerMonitorFormatter.logLevel.INFO.toString());
doc.put("LogTime", logName);
doc.put("jvmUsed", jvmUsed/i);
doc.put("jvmTotal", jvmTotal/i);
mongo.insert(doc, DAY_DATA_COLLECTION);
查询如上;
Query query=new Query(Criteria.where("operationCode").is("b4"));
List<Document> collection = mongo.find(query, Document.class,logName);
int count = Integer.valueOf(collection.get(0).get("diskCount").toString());
Criteria c = Criteria.where("operationCode").is("b4");
Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(c),Aggregation.limit(count));
AggregationResults<Document> collection2 = mongo.aggregate(aggregation, logName ,Document.class);
mongo.insert(collection2, DAY_DATA_COLLECTION);
聚合查询;
感谢:https://blog.csdn.net/vbirdbest/article/details/77102999