Mongodb for C# 分组查询

#region 排序获取集合 static List<BsonDocument> GetPagerWithGroup(string connectionString, string databaseName,      string collectionName, IMongoQuery param, GroupByBuilder groupByBuilder, PageInfo info, out int pageCount)
        /// <summary>
        ///分组查询获取集合
        /// </summary>
        /// <param name="connectionString">数据库连接字符串</param>
        /// <param name="databaseName">数据库名称</param>
        /// <param name="collectionName">集合名称</param>
        /// <param name="param">条件</param>
        /// <param name="groupByBuilder">分组条件</param>
        /// <param name="info">分页信息</param>
        /// <param name="pageCount">总页数</param>
        /// <returns>List</returns>
        public static List<BsonDocument> GetPagerWithGroup(string connectionString, string databaseName,
            string collectionName, IMongoQuery param, GroupByBuilder groupByBuilder, PageInfo info, out int pageCount)
        {

            var collection = GetMongoCollection<BsonDocument>(connectionString, databaseName, collectionName);
            var dictionary = new Dictionary<string, int>();
            dictionary["num"] = 0;
            List<BsonDocument> list = null;
            var q = collection.Group(param, groupByBuilder, BsonDocument.Create(dictionary),
                BsonJavaScript.Create("function(doc,prev){prev.num++;}"),
                BsonJavaScript.Create("function(doc){ doc.count=doc.num;delete doc.num; }"));

            pageCount = 0;
            if (info == null)
            {
                list = q.ToList();
            }
            else
            {
                list = q
            .Skip((info.PageIndex - 1) * info.PageSize).Take(info.PageSize).ToList();
                var count = q.Count();
                if (count <= 0)
                {
                    pageCount = 0;
                    return null;
                }
                pageCount = (int)(count % info.PageSize == 0 ? count / info.PageSize : (count / info.PageSize) + 1);
            }

            return list;
        }
        #endregion
时间: 2024-10-14 06:23:14

Mongodb for C# 分组查询的相关文章

mongodb 分组查询

数据的保存 include_once 'mDB.class.php'; $m=new mDB(); $m->setDB('mydb'); // $m->save('stu',['dept'=>'财务','name'=>'张三','age'=>73]); // $m->save('stu',['dept'=>'计算机','name'=>'张四','age'=>53]); // $m->save('stu',['dept'=>'计算机','na

mongodb 分组查询统计去掉重复的记录

mongodb版本号是,MongoDB shell version: 2.4.4 操作环境,shell窗口 ,如下所示: [mongo_user@mongodb_dbs ~]# mongo --port 30100 MongoDB shell version: 2.4.4 connecting to: 127.0.0.1:30000/test mongos> mongos> use pos switched to db pos mongos> 1,先统计分组记录数,以paymentOrd

浅析mongodb中group分组

这篇文章主要介绍了浅析mongodb中group分组的实现方法及示例,非常的简单实用,有需要的小伙伴可以参考下. group做的聚合有些复杂.先选定分组所依据的键,此后MongoDB就会将集合依据选定键值的不同分成若干组.然后可以通过聚合每一组内的文档,产生一个结果文档.和数据库一样group常常用于统计.MongoDB的group还有很多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]. 一.Group大约需要一下几个参数. 1

5 功能4:个人站点页面设计(ORM跨表与分组查询)

1.个人站点页面文章的查询 # 个人站点 http://www.cnblogs.com/wh1520577322/ http://www.cnblogs.com/liucong12345/ http://www.cnblogs.com/kin1492/ (1)用户未找到,404页面构建 url # 个人站点页面设计 re_path(r'^(?P<username>\w+)$', views.home_site, name='home_site'), view 404.html <!DOC

BBS--功能4:个人站点页面设计(ORM跨表与分组查询)

查询: 日期归档查询 1 date_format ============date,time,datetime=========== create table t_mul_new(d date,t time,dt datetime); insert into t_mul_new values(now(),now(),now()); select * from t_mul; mysql> select * from t_mul; +------------+----------+---------

SQL group 分组查询

1.使用group by进行分组查询  在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:  被分组的列 为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数group by的使用在这只写几个例子吧:例: select courseID,avg(score) as 课程平均成绩 from score group by courseID 例: select studentID as 学员编号,courseID as 内部测试,a

mysql分组查询时,讲多个值合并在一行显示

mysql根据字段进行分组查询时,相同字段的数据,只会显示一个,如果要想让这个字段的所有数据,显示在一行里,可以在查询时用GROUP_CONTAT函数,默认数据合并以逗号,分开

8.4Solr API使用(Result Grouping分组查询)

转载请出自出处:http://eksliang.iteye.com/blog/2169458 一.概述 分组统计查询不同于分组统计(Facet),facet只是简单统计记录数,并不能为每组数据返回实际的数据回来,solr提供的grouping查询能够解决这一问题,也就是说,他除了能分组外,还能把每组数据返回来. 二.语法简介 参考实例一 查询参数如下: q=*:* &group=true &group.field=price 返回结果如下: Solr Grouping参数列表 参数 参数含

7-08分组查询

这是一个用户表,下面查询一个用户的数量: --查询表的用户数量 SELECT COUNT(*) FROM UserInfo 再查询一下有几个男用户和几个女用户: SELECT COUNT(*) FROM UserInfo WHERE gender=1 SELECT COUNT(*) FROM UserInfo WHERE gender =0 这样其实把它们分成了两个组,gender=1是男用户,gender=0是女用户,但是有些复杂的表,可以分n个组, 这样在用这种方式比较麻烦,就可以用分组查询