mongodb有能够sum的命令吗
2个回答
展开全部
没有直接的sum命令,可以通过aggregate或mapreduce实现,这是我的一个例子
/**
* 对一个字段求和
* @param collectionName
* @param where
* @param groupFields
* @return
*/
public Double sum(String collectionName,DBObject where,String sumField){
DBCollection col=mongoDbFactory.getDb().getCollection(collectionName);
DBObject match=new BasicDBObject("$match",where);
DBObject group=new BasicDBObject("$group",new BasicDBObject("_id",null).append("total", new BasicDBObject("$sum","$"+sumField)));
List<DBObject> list=(List<DBObject>)col.aggregate(match,group).results();
if(list.size()>0){
return Double.valueOf(list.get(0).get("total").toString());
}
return 0D;
}
/**
* 对一个字段求和
* @param collectionName
* @param where
* @param groupFields
* @return
*/
public Double sum(String collectionName,DBObject where,String sumField){
DBCollection col=mongoDbFactory.getDb().getCollection(collectionName);
DBObject match=new BasicDBObject("$match",where);
DBObject group=new BasicDBObject("$group",new BasicDBObject("_id",null).append("total", new BasicDBObject("$sum","$"+sumField)));
List<DBObject> list=(List<DBObject>)col.aggregate(match,group).results();
if(list.size()>0){
return Double.valueOf(list.get(0).get("total").toString());
}
return 0D;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询