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

首頁 > 編程 > C# > 正文

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

2019-10-29 21:10:28
字體:
供稿:網(wǎng)友

今天主要用了一個(gè)mongodb/202790.html">mongodb/44701.html">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)要注意.

mongodb,aggregate,csharp,c

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

mongodb,aggregate,csharp,c

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到c#教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桦甸市| 米易县| 体育| 博罗县| 远安县| 芦山县| 平山县| 通榆县| 家居| 额尔古纳市| 阳西县| 工布江达县| 中超| 融水| 苍梧县| 昌江| 仪征市| 阳原县| 衡山县| 张家川| 鹤岗市| 中方县| 潼关县| 浪卡子县| 嘉定区| 海门市| 东至县| 长宁区| 阳泉市| 阿克苏市| 南投县| 察隅县| 诸暨市| 东辽县| 沈丘县| 铜川市| 惠水县| 丹凤县| 日土县| 兴仁县| 皮山县|