MongoDB学习笔记~数据模型属性为集合时应该为它初始化

回到目录

今天要说一下技术点,我们在设计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实体的意思,呵呵!

回到目录

posted @   张占岭  阅读(1178)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2013-12-13 DDD~领域服务的规约模式
2013-12-13 我也来说说DDD~大话目录
2012-12-13 爱上MVC3系列~PartialView()与View()真的一样吗?
2012-12-13 爱上MVC3系列~手动向路由表扔数据,不影响当前URL路由配对
2012-12-13 爱上MVC3系列~使用Func<string, HelperResult>实现访问权限的设计
2011-12-13 跨域实现IFRAME自适应高度
点击右上角即可分享
微信分享提示