博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB学习笔记~数据模型属性为集合时应该为它初始化
阅读量:6646 次
发布时间:2019-06-25

本文共 1053 字,大约阅读时间需要 3 分钟。

今天要说一下技术点,我们在设计mongodb的数据模型时,如果属性是数组或者集合类型,我们在模型初始化时,需要为它们初始化一下,否则在数据库里将会被存储为NULL,当被存储为NULL时,我们将无法进行组件的push,pull等操作。

之间在设计模型时没有注意这点,然后产生的问题就是,没有被集合赋值,在mongodb里将会存储为NULL

而在对数组元素进行push时,当然就出现了下面的异常,因为mongodb不知道它是一个数组对象,呵呵

当我们为模块的集合属性初始化这后,存储的数据结构就是一个空元素的数组,如图

这时我们使用push命令,就可以进行添加元素的操作了

下面我们做一个整个的规定:例如下面这个Dog模型,为它的集合属性做了初始化

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

在进行添加操作时,你就不知道显示的为它们赋值了,没有赋值在mongodb里也会是一个空元素的数组,这是符合我们设计的,看到这个数据模型,是否有点EF里的poco实体的意思,呵呵!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
使用Envoy 作Sidecar Proxy的微服务模式-2.超时和重试
查看>>
每日两道前端面试题20190220
查看>>
自底向上的web数据操作指南
查看>>
在使用spring-boot-maven-plugin的下生成普通的jar包
查看>>
Vue-SuperSlide(SuperSlide component for Vue)
查看>>
应用监控的选型思考
查看>>
MaxCompute表设计最佳实践
查看>>
https简单解读
查看>>
Redux and Router
查看>>
什么是压测,为什么要进行压力测试?JMETER工具的使用
查看>>
Git 分支管理
查看>>
关于epoll的IO模型是同步异步的一次纠结过程
查看>>
混合云管理-企业如何选择混合云管理平台
查看>>
JavaEE 压力测试工具
查看>>
【.NET Core项目实战-统一认证平台】第九章 授权篇-使用Dapper持久化IdentityServer4...
查看>>
Zabbix 创建月度统计报表脚本(学习笔记十六)
查看>>
从模版中找到控件的方法和找到样式的方法
查看>>
05 集成学习 - Boosting - GBDT初探
查看>>
[OSGI Felix ] Intellij Idea 15 中开发 Maven osgi 项目(Apache felix环境)
查看>>
HBase内的基本概念
查看>>