中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

MongoDB學(xue)習筆(bi)記~自己封(feng)裝的(de)Curd操作(按(an)需更新的(de)先決條件)

回到目錄

我們上一講中介紹了大叔封裝的Mongo倉儲,其中介紹了幾個不錯的curd操作,而對于按需更新內部子對象,它是有條件的,即你的子對象不能為null,也就是(shi)說,我們(men)在建立主(zhu)對象(xiang)時,應該為(wei)子對象(xiang)賦(fu)一(yi)(yi)下(xia)初值,即(ji)new一(yi)(yi)下(xia)它,呵呵.

正確的mongo集合

對于賦過初值(zhi)的子對象,在按需要更新時(shi),有(you)以下兩種(zhong)要注意一下

1 子對象的_id,如果(guo)已經存在,就更新它的值

2 子(zi)對象的_id,如果不(bu)存在(zai),或者沒有顯示(shi)為_id賦值(zhi),則添加一條(tiao)新的記錄,即_id從新生(sheng)成

而對于實體(ti)更新(xin)(xin)不(bu)存在這個問題,實體(ti)里(li)的值會覆蓋(gai)掉原表(biao)的值,下面看一下按(an)需要更新(xin)(xin)的代(dai)碼

            #region 按需更新
            repository1.Update<Person>(i => new Person
            {
                Id = "556d531e2683c818c86caddb",
                Address = new Address
                {
                    Id = "556d531e2683c818c86ca123",/*不(bu)加id(或者id沒有在(zai)(zai)集合中存在(zai)(zai))就是向列(lie)表(biao)添加一(yi)條元(yuan)素(su),id存在(zai)(zai)則更新指定(ding)的元(yuan)素(su)*/
                    Province = "luanxian",
                    City = "111湖南占占大師",
                    District = "小區",
                    Seconds = 1
                },
                AddList = new List<Address>() { 
                   new Address
                     {
                         /*不加id(或者id沒有(you)在集(ji)合中存在)就是向(xiang)列表添(tian)加一條(tiao)元(yuan)素(su)(su),id存在則(ze)更(geng)新(xin)指定的元(yuan)素(su)(su)*/
                         Id="556d531e2683c818c86cadde",
                         Province = "luanxian",
                         City = "湖南(nan)占占大師ddd",
                         District = "小區",
                         Seconds = 1 
                     }}
            });
            #endregion

對于(yu)整(zheng)個(ge)更新,還是(shi)同樣的(de)問題,當然前(qian)提需要把表記錄從庫中獲出來

           #region 完整更新
            var e1 = repository1.Find("556d531e2683c818c86caddb");
            e1.Name = "wet";
            e1.Address.City = "北京123";
            /*遍歷原來的集合,批量(liang)賦值*/
            e1.AddList.ForEach(i =>
            {
                i.City = "大占占";
            });
            /*為每(mei)個對象(xiang)分別賦(fu)值,不指定(ding)ID被自動(dong)生成*/
            e1.AddList = new List<Address> {
            new Address{City="占占1"},
            new Address{City="占占2"}
            };
            repository1.Update(e1);
            #endregion

 

對于(yu)MonoDB我們還需要繼續(xu)去(qu)探索,研究...

回到目錄

posted @ 2015-06-02 15:27  張占嶺  閱讀(1235)  評論(0)    收藏  舉報