MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋一下初值,即new一下它,呵呵.

正确的mongo集合

对于赋过初值的子对象,在按需要更新时,有以下两种要注意一下

1 子对象的_id,如果已经存在,就更新它的值

2 子对象的_id,如果不存在,或者没有显示为_id赋值,则添加一条新的记录,即_id从新生成

而对于实体更新不存在这个问题,实体里的值会覆盖掉原表的值,下面看一下按需要更新的代码

            #region 按需更新
            repository1.Update<Person>(i => new Person
            {
                Id = "556d531e2683c818c86caddb",
                Address = new Address
                {
                    Id = "556d531e2683c818c86ca123",/*不加id(或者id没有在集合中存在)就是向列表添加一条元素,id存在则更新指定的元素*/
                    Province = "luanxian",
                    City = "111湖南占占大师",
                    District = "小区",
                    Seconds = 1
                },
                AddList = new List<Address>() { 
                   new Address
                     {
                         /*不加id(或者id没有在集合中存在)就是向列表添加一条元素,id存在则更新指定的元素*/
                         Id="556d531e2683c818c86cadde",
                         Province = "luanxian",
                         City = "湖南占占大师ddd",
                         District = "小区",
                         Seconds = 1 
                     }}
            });
            #endregion

对于整个更新,还是同样的问题,当然前提需要把表记录从库中获出来

           #region 完整更新
            var e1 = repository1.Find("556d531e2683c818c86caddb");
            e1.Name = "wet";
            e1.Address.City = "北京123";
            /*遍历原来的集合,批量赋值*/
            e1.AddList.ForEach(i =>
            {
                i.City = "大占占";
            });
            /*为每个对象分别赋值,不指定ID被自动生成*/
            e1.AddList = new List<Address> {
            new Address{City="占占1"},
            new Address{City="占占2"}
            };
            repository1.Update(e1);
            #endregion

对于MonoDB我们还需要继续去探索,研究...

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件),如需转载请自行联系原博主。

目录
相关文章
|
NoSQL MongoDB
MongoDB入门-MongoDB的CURD语句练习
这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
127 2
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
174 1
|
12月前
|
存储 NoSQL MongoDB
.NET MongoDB数据仓储和工作单元模式封装
.NET MongoDB数据仓储和工作单元模式封装
193 15
|
DataWorks NoSQL fastjson
DataWorks操作报错合集之DataX进行MongoDB全量迁移的过程中,DataX的MongoDB Reader插件在初始化阶段找不到Fastjson 2.x版本的类库,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
存储 NoSQL Linux
【MongoDB】下载安装、指令操作
【MongoDB】下载安装、指令操作
497 1
|
分布式计算 DataWorks NoSQL
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
|
存储 NoSQL 数据挖掘
深入探索MongoDB聚合操作:解析数据之美
深入探索MongoDB聚合操作:解析数据之美
411 1
|
NoSQL Shell MongoDB
python操作MongoDB部分
python操作MongoDB部分
140 0
|
NoSQL BI MongoDB
MongoDB 数据探索之道:查询文档操作详解
MongoDB 数据探索之道:查询文档操作详解
190 0
|
NoSQL 安全 MongoDB
MongoDB 数据精简指南:删除文档操作详解
MongoDB 数据精简指南:删除文档操作详解
462 0

推荐镜像

更多