全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Mongodb在CSharp里实现Aggregate实例

今天主要用了一个mongodb.driver里的分组,事实上在网上介绍这方面的文章非常少,以至于我在出现问题后,无法找到一个正确的解决方案,最后还是通过异常信息找到的解决方法,所以感觉自己更应该去写一篇关于如何在C#驱动里进行聚合Aggregate的文章!

/// <summary>
    /// 返回UI消息树
    /// </summary>
    /// <returns></returns>
    public static string GetMongoLog(DateTime? fromDate, DateTime? toDate, int page = 1)
    {
      string from = DateTime.Now.Date.ToString("yyyy-MM-dd");
      string to = DateTime.Now.Date.AddDays(1).ToString("yyyy-MM-dd");
      if (fromDate.HasValue)
      {
        from = fromDate.Value.ToString("yyyy-MM-dd");

      }
      if (toDate.HasValue)
      {
        to = toDate.Value.ToString("yyyy-MM-dd");
      }
      var stages = new List<IPipelineStageDefinition>();
      stages.Add(new JsonPipelineStageDefinition<BsonDocument, BsonDocument>("{$match:{AddTime:{$gt:ISODate('" + from + "'),$lt:ISODate('" + to + "')}}}"));
      stages.Add(new JsonPipelineStageDefinition<BsonDocument, BsonDocument>("{$group:{_id: \"$RootId\", count: {$sum: 1}}}"));
      stages.Add(new JsonPipelineStageDefinition<BsonDocument, BsonDocument>("{$skip:" + page * 5 + "}"));
      stages.Add(new JsonPipelineStageDefinition<BsonDocument, BsonDocument>("{$limit:5}"));
      var pipeline = new PipelineStagePipelineDefinition<BsonDocument, BsonDocument>(stages);
      var result = NoSql.MongodbManager<LoggerContext>.Collection.Aggregate(pipeline);
      StringBuilder str = new StringBuilder();

      str.Append("<ol class='treeMsg'>");
      foreach (var item in result.ToList())
      {
        var timer = new List<DateTime>();
        var old = NoSql.MongodbManager<LoggerContext>.Instance.Find(i => i.RootId == item.Values.ToArray()[0].ToString() && i.ParentId == null).FirstOrDefault();
        timer.Add(old.AddTime);
        str.Append("<li style='margin:5px;border:1px dashed #aaa'>");
        str.AppendFormat("<span style='color:red;'>{0}</span><span style='color:green'>{1}</span><span>{2}</span>"
          , old.Url
          , old.MessageBody
          , old.AddTime);
        MsgTree(str, old.ChildId, timer);
        str.AppendFormat("<p><b><em>本次请求用时{0}毫秒({1}秒)<em></b></p>"
          , (timer.Max() - timer.Min()).TotalMilliseconds
          , (timer.Max() - timer.Min()).TotalSeconds);
        str.Append("</li>");
      }
      str.Append("</ol>");
      return str.ToString();
    }


注意,目前mongodb for C#这个驱动,在进行Aggregate时,只支持BsonDocument类型,也就是说,你的集合collection也必须返回的是BsonDocument,而实体类型是不可以被认出的,这点要注意.

也正是如此,所以我们的mongo封装时,别忘记公开一个BsonDocument的对象供聚合使用!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# mongodb  # aggregate  # csharp  # c  # 使用aggregate在MongoDB中查询重复数据记录的方法  # MongoDB aggregate 运用篇个人总结  # nodejs+mongodb aggregate级联查询操作示例  # mongodb中非常好用的Aggregate入门教程  # MongoDB中aggregate()方法实例详解  # 的是  # 我在  # 不可以  # 要注意  # 用了  # 解决方法  # 大家多多  # 该去  # 写一篇  # 更应  # 别忘记  # 也就是说  # 事实上  # 在网上  # 如何在  # dd  # MM  # var  # HasValue  # AddDays 


相关文章: 如何通过服务器快速搭建网站?完整步骤解析  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何在阿里云部署织梦网站?  如何快速上传自定义模板至建站之星?  如何获取PHP WAP自助建站系统源码?  如何在万网ECS上快速搭建专属网站?  开封网站制作公司,网络用语开封是什么意思?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  如何选择可靠的免备案建站服务器?  网站制作话术技巧,网站推广做的好怎么话术?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何在建站主机中优化服务器配置?  公司网站制作价格怎么算,公司办个官网需要多少钱?  ,如何利用word制作宣传手册?  建站之星如何取消后台验证码生成?  如何打造高效商业网站?建站目的决定转化率  红河网站制作公司,红河事业单位身份证如何上传?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  无锡营销型网站制作公司,无锡网选车牌流程?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  网站微信制作软件,如何制作微信链接?  如何批量查询域名的建站时间记录?  建站VPS推荐:2025年高性能服务器配置指南  如何用狗爹虚拟主机快速搭建网站?  如何通过多用户协作模板快速搭建高效企业网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  已有域名如何免费搭建网站?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  小型网站制作HTML,*游戏网站怎么搭建?  如何快速使用云服务器搭建个人网站?  招商网站制作流程,网站招商广告语?  建站主机CVM配置优化、SEO策略与性能提升指南  建设网站制作价格,怎样建立自己的公司网站?  官网网站制作腾讯审核要多久,联想路由器newifi官网  焦点电影公司作品,电影焦点结局是什么?  太原网站制作公司有哪些,网约车营运证查询官网?  如何通过西部建站助手安装IIS服务器?  如何配置IIS站点权限与局域网访问?  装修招标网站设计制作流程,装修招标流程?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何在万网主机上快速搭建网站?  如何通过FTP服务器快速搭建网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站之星如何助力企业快速打造五合一网站?  如何彻底删除建站之星生成的Banner? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。