文章出處

回到目錄

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

之間在設計模型時沒有注意這點,然后產生的問題就是,沒有被集合賦值,在mongodb里將會存儲為NULL

而在對數組元素進行push時,當然就出現了下面的異常,因為mongodb不知道它是一個數組對象,呵呵

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

這時我們使用push命令,就可以進行添加元素的操作了

下面我們做一個整個的規定:例如下面這個Dog模型,為它的集合屬性做了初始化

        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; }
        }

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

回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    發表留言