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实体的意思,呵呵!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MongoDB学习笔记~数据模型属性为集合时应该为它初始化,如需转载请自行联系原博主。

目录
相关文章
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
315 23
【赵渝强老师】MongoDB写入数据的过程
|
NoSQL MongoDB 数据库
MongoDB 删除集合
10月更文挑战第14天
462 1
|
存储 NoSQL MongoDB
数据的存储--MongoDB文档存储(二)
数据的存储--MongoDB文档存储(二)
333 2
|
11月前
|
NoSQL 关系型数据库 MongoDB
微服务——MongoDB常用命令——集合操作
本节主要介绍MongoDB中的集合操作,包括显式与隐式创建集合的方法。显式创建使用`db.createCollection(name)`,需遵循命名规范(如不能以&quot;system.&quot;开头或包含`\0`字符)。隐式创建则通过直接向不存在的集合插入文档实现,更为常用。此外,还介绍了集合删除方法`db.collection.drop()`及其返回值规则,帮助用户管理数据库中的集合资源。
428 0
|
11月前
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
291 0
|
缓存 NoSQL MongoDB
|
存储 NoSQL MongoDB
MongoDB 创建集合
10月更文挑战第13天
281 1
|
NoSQL MongoDB 数据库
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
|
存储 NoSQL 关系型数据库
数据的存储--MongoDB文档存储(一)
数据的存储--MongoDB文档存储(一)
674 3
|
持续交付 C# 敏捷开发
“敏捷之道:揭秘WPF项目中的快速迭代与持续交付——从需求管理到自动化测试,打造高效开发流程的全方位指南”
【8月更文挑战第31天】敏捷开发是一种注重快速迭代和持续交付的软件开发方法,通过短周期开发提高产品质量并快速响应变化。本文通过问题解答形式,探讨在Windows Presentation Foundation(WPF)项目中应用敏捷开发的最佳实践,涵盖需求管理、版本控制、自动化测试及持续集成等方面,并通过具体示例代码展示其实施过程,帮助团队提升代码质量和开发效率。
280 0

推荐镜像

更多