zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    排序——字符串怀疑人生
    广搜的变形+最短路思想 变色龙
    阿斯顿发发顺丰
    莫队暴力 一知半解
    P3384 【模板】树链剖分
    U74201 旅行计划 树上找链长度
    数据结构:线性表基本操作和简单程序
    数据结构:循环链表实现约瑟夫环
    Codeforces 215D. Hot Days(贪心)
    Codeforces 1080C- Masha and two friends
  • 原文地址:https://www.cnblogs.com/gaobing/p/4277060.html
Copyright © 2011-2022 走看看