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

MongoDB學習(xi)筆(bi)記~數據模型屬性為集合時應該(gai)為它初始化(hua)

回到目錄

今天要說一下技術點,我們在設計mongodb的數據模型時,如果屬性是數組或者集合類型,我們(men)在模型初始化時,需(xu)要為它(ta)們(men)初始化一下,否則在數據庫里(li)將(jiang)會(hui)被存儲為NULL,當(dang)被存儲為NULL時,我們(men)將(jiang)無法進行組件的push,pull等操作。

之(zhi)間在(zai)設計(ji)模(mo)型時(shi)沒有注意這點,然(ran)后產生(sheng)的問題就是,沒有被集合賦值,在(zai)mongodb里(li)將會存儲為NULL

而在對數(shu)組元素進行push時,當(dang)然(ran)就出(chu)現了下面的異常,因為mongodb不知道(dao)它是一個(ge)數(shu)組對象,呵(he)呵(he)

當(dang)我們為模塊的(de)集合屬性(xing)初始(shi)化這(zhe)后,存儲的(de)數據結構就是(shi)一個空元素的(de)數組,如圖

這(zhe)時我們使用(yong)push命(ming)令(ling),就可以(yi)進行添加元素的操作了

下面我們做一個整個的規定:例(li)如(ru)下(xia)面(mian)這個Dog模型(xing),為(wei)它的集合屬性做了初始化

        public class Dog : NoSqlEntity
        {
            public Dog()
            {
                this.AddressHistory = new List<Adderss>();
                this.DogHistory = new List<DogHistory>();
                this.Foods = new string[] { };
            }
            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; }
            public List<Adderss> AddressHistory { get; set; }
        }

在進行添加操作時,你就不知(zhi)道顯示的為它們賦值了,沒有賦值在mongodb里也會是一個空元素的數組,這是符合我們設計的,看到這個數據模型,是否有點(dian)EF里的poco實體(ti)的意思,呵呵!

回到目錄

posted @ 2016-12-13 09:02  張占嶺  閱讀(1192)  評論(0)    收藏  舉報