//获取数据库客户端
client = new MongoClient(mongoUrl, mongoPort);
//根据客户端获取数据库连接
db = client.getDatabase("wechat");
//获取指定集合
MongoCollection<Document> collection = db.getCollection("user_feedback");
List<BasicDBObject> ops = new ArrayList<BasicDBObject>();
BasicDBObject match = new BasicDBObject("$match",new BasicDBObject("title","这个是标题"));
ops.add(match);
//group分组,_id是唯一标识,后面加$ + 想要分组的字段。count(随意起名)统计$sum统计求和1是一倍,2会求2倍。
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id","$update_date")
// .append("count", new BasicDBObject("$sum", 1)));
//输出结果,七个20210623111345,一个20210624111345
// {"count":7,"_id":"20210623111345"}
// {"count":1,"_id":"20210624111345"}
//其他和上面同理,$avg求平均值后面跟$ + 想要求平均值得字段(必须是数值类型,String类型无效)
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$avg", "$solve")));
//输出结果
// {"count":1.8571428571428572,"_id":"20210623111345"}
// {"count":2.0,"_id":"20210624111345"}
//$min求最小值,后面跟$ + 想要求最小值的字段
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$min", "$solve")));
//$max求最大值,后面跟$ + 想要求最大值的字段
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$max", "$solve")));
//$push在结果文档中插入一个值到数组中,后面跟想要插入的值
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$push", "$solve")));
//输出结果
// {"count":[1,2,2,2,2,2,2],"_id":"20210623111345"}
// {"count":[2],"_id":"20210624111345"}
//$addToSet在结果文档中插入一个值到数组中,会自动去重,后面跟想要插入的值
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$addToSet", "$solve")));
//输出结果
// {"count":[2,1],"_id":"20210623111345"}
// {"count":[2],"_id":"20210624111345"}
//根据文档中的排序获取第一个文档数据
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$first", "$_id")));
//根据文档中的排序获取最后一个文档数据
// BasicDBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$update_date")
// .append("count", new BasicDBObject("$last", "$_id")));
// ops.add(group);
//project只查询某一个字段,这里是只查询title字段,(0是不查询,1是查询)_id字段默认为1,其他字段默认为0
// BasicDBObject project = new BasicDBObject("$project", new BasicDBObject("_id", 0).append("title", 1));
// ops.add(project);
//sort按照指定字段给文档排序,1是升序,-1是降序
// BasicDBObject sort = new BasicDBObject("$sort", new BasicDBObject("_id", -1));
// ops.add(sort);
//limit是查询几条数据,配合skip就是从第几条开始到第几条结束如下就是从第3条到到第4条
BasicDBObject limit = new BasicDBObject("$limit", 4);
ops.add(limit);
BasicDBObject skip = new BasicDBObject("$skip", 2);
ops.add(skip);
AggregateIterable<Document> aggregate = collection.aggregate(ops);
MongoCursor<Document> iterator = aggregate.iterator();
while (iterator.hasNext()) {
Document next = iterator.next();
JSONObject parseObject = JSONObject.parseObject(next.toJson().toString());
System.err.println(parseObject);
}
版权声明:本文为zxczxc_123123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。