MongoDB中使用MongoTemplate 进行数据操作初级,高级操作

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

猜你喜欢

转载自blog.csdn.net/zzqtty/article/details/80846036