<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MongoDB學習筆記~根據子集合里某個屬性排序

      回到目錄

      這個問題是這樣的,有一個實體dog,里面有集合屬性DogHistory,它里面有一些自己的屬性,其中一個是SortNum,主要用來進行排序,而且這個排序可以影響主對象,即影響dog類,這個在mongodb里不容易實現,但也不是不能實現,我們需要分兩步考慮這個問題,不過首先我們需要知道,mongodb里不支持子集合對象的子屬性排序,但它支持子實體對象的子屬性排序。

      下面看一下數據結構

      public class DogHistory
          {
              public bool IsHealth { get; set; }
              public Adderss Adderss { get; set; }
              public string HistoryName { get; set; }
              public string[] Foods { get; set; }
              public int SortNum { get; set; }
          }
          public class Dog : NoSqlEntity
          {
              public Des Des { get; set; }
              public string Title { get; set; }
              public string Type { get; set; }
              public string[] Foods { get; set; }
              public List<DogHistory> DogHistory { get; set; }
          }

      其中Dog類子實體屬性Des,它里面有屬性sortNum,如果我們去排序,那是完全沒有問題的,代碼如下

                 Console.WriteLine("--------------------子實體對象");
                  var model3 = MongoDbClient.MongoManager<Dog>.Instance
                    .Find(Builders<Dog>.Filter.Eq("DogHistory.HistoryName", "毛仔"))
                    .SortBy(i => i.Des.SortNum).ToList();
                  model3.ToList().ForEach(i =>
                  {
                      Console.WriteLine(i.Title + ":" + i.Title + ",sort:" + i.Des.SortNum);
                  });

      但如果希望根據DogHistory集合里的某個屬性進行排序,那是不行的,雖然不行,但mongodb給出來了解決方案,對于集合類型可以通過索引下標的方式進行排序,這它是支持的。

      下面代碼展現了如何實現這種復雜的排序:

                  var entityIndex = MongoDbClient.MongoManager<Dog>.Instance.Find(Builders<Dog>.Filter.Eq("DogHistory.HistoryName", "大毛")).FirstOrDefault();
                  var index = entityIndex.DogHistory.FindIndex(i => i.HistoryName == "大毛");
                  var model2 = MongoDbClient.MongoManager<Dog>.Instance
                    .Find(Builders<Dog>.Filter.Eq("DogHistory.HistoryName", "大毛"))
                    .SortBy(i => i.DogHistory[index].SortNum);
                  model2.ToList().ForEach(i =>
                  {
                      Console.WriteLine(i.Title + ":" + i.DataStatus);
                  });

      結果與我們預期的一樣,當然,如果是簡單的字符數組類型,也是可以通過對數據下標元素排序的,呵呵。

      測試結果:

      回到目錄

      posted @ 2016-11-29 16:32  張占嶺  閱讀(4351)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费无码黄十八禁网站| 午夜国产理论大片高清| 久久99九九精品久久久久蜜桃| 黄瓜一区二区三区自拍视频| 亚洲欧美国产精品专区久久| 亚洲成av人片无码迅雷下载| 蜜臀视频在线观看一区二区| 国产电影一区二区三区| 成人午夜视频在线| 无码专区一va亚洲v专区在线| 亚洲精品一区二区天堂| 一 级做人爱全视频在线看| 中文字幕成人精品久久不卡| 久久久久香蕉国产线看观看伊| 国产18禁黄网站禁片免费视频| 精品伊人久久久香线蕉| 开心五月婷婷综合网站| 2020国产成人精品视频| 国产成人免费永久在线平台| 亚洲中文字幕无码爆乳| 男女无遮挡激情视频| 亚洲国产精品综合久久20| 天堂8中文在线最新版在线| 精品久久久久无码| 中文字幕亚洲一区二区三区| 国产中文字幕精品在线| 国产亚洲亚洲国产一二区| 激情六月丁香婷婷四房播| 韩国无码AV片午夜福利| 亚洲护士一区二区三区| 国产精品一区二区三区91| 99国产精品99久久久久久| 亚洲精品一区二区18禁| 亚洲成人av免费一区| 亚洲成人av在线系列| 四虎成人精品在永久免费| 久久中精品中文字幕入口| 日本无遮挡真人祼交视频| 色婷婷欧美在线播放内射 | 亚洲色在线V中文字幕| 日韩亚洲精品中文字幕|