国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Mongodb在CSharp里實(shí)現(xiàn)Aggregate實(shí)例

2020-01-24 00:39:39
字體:
供稿:網(wǎng)友

今天主要用了一個(gè)mongodb.driver里的分組,事實(shí)上在網(wǎng)上介紹這方面的文章非常少,以至于我在出現(xiàn)問題后,無法找到一個(gè)正確的解決方案,最后還是通過異常信息找到的解決方法,所以感覺自己更應(yīng)該去寫一篇關(guān)于如何在C#驅(qū)動(dòng)里進(jìn)行聚合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>本次請(qǐng)求用時(shí){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#這個(gè)驅(qū)動(dòng),在進(jìn)行Aggregate時(shí),只支持BsonDocument類型,也就是說,你的集合collection也必須返回的是BsonDocument,而實(shí)體類型是不可以被認(rèn)出的,這點(diǎn)要注意.

也正是如此,所以我們的mongo封裝時(shí),別忘記公開一個(gè)BsonDocument的對(duì)象供聚合使用!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 勃利县| 九江县| 大足县| 札达县| 新巴尔虎右旗| 台北市| 花莲县| 桂东县| 镇雄县| 如东县| 平邑县| 昭觉县| 台东县| 苗栗县| 民丰县| 南丹县| 赤峰市| 新民市| 弥勒县| 日照市| 富宁县| 通道| 团风县| 洛隆县| 比如县| 万山特区| 锦州市| 井研县| 景洪市| 广宁县| 巫山县| 德惠市| 体育| 宜宾县| 阿图什市| 蓝田县| 萨迦县| 蓝田县| 辽宁省| 屏东市| 崇州市|