MongoDB学习笔记~使用原生语句实现三层集合关系的更新
MongoDB的文档型数据结构使得它在存储数据上很像JSON,在可读性方面很强,然而这种复杂的结构在update时相对麻烦一些,而对于官方给出的文档说的也不够细致,有些东西也是模棱两可的态度,对于多层嵌套的集合对象,实现update更是麻烦,而目前我们所验证的是,原生语句最多支持三层集合对象,层次再多就无法实现了。
三层集合关系对象代码如下,其实是内嵌两层,算上实体,共三层集合
aaarticlea/png;base64,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" alt="" />
对于这种结构,我们使用原生的语句是可以对OrderDetail这个层次的对象进行更新的,下面是我的做法
1 通过三级id查询一级大对象(Query.EQ)(包括所有二级和三级)
var query = Query.EQ("OrderList.OrderDetail._id", threeID);
2 通过SetFields过滤多余的二级对象
var oo = mongoRepository.Collection.Find(query).SetFields("OrderList.$").FirstOrDefault();
3 对象查询出来后,三级对象列表只能通过遍历的方法查询出来,并对它进行赋值更新
for (int i = ; i < orderDetail.Count; i++)
{
if (orderDetail[i].Id == threeID)
{
orderDetail[i].ProductName = "大占占修改了订单 2015-09-21";
break;
}
}
好了,说话了步骤,再来看一下完整的代码
var threeID = ObjectId.Parse("55c012232683c8143c3b494d");
var mongoRepository = new MongoDB.Data.Core.MongoOfficialRepository<Person>();
var query = Query.EQ("OrderList.OrderDetail._id", threeID);
var oo = mongoRepository.Collection.Find(query).SetFields("OrderList.$").FirstOrDefault();
var update = new UpdateDocument();
var OrderInfo = oo.OrderList.FirstOrDefault();
var orderDetail = OrderInfo.OrderDetail;
for (int i = ; i < orderDetail.Count; i++)
{
if (orderDetail[i].Id == threeID)
{
orderDetail[i].ProductName = "大占占修改了订单 2015-09-21"; #region 先pull,再push
//update = new UpdateDocument {{ "$pull",
// new BsonDocument("OrderList."+j+".OrderDetail",
// new BsonDocument("_id",threeID))
// }};
//mongoRepository.Collection.Update(query1, update);
//update = new UpdateDocument {{ "$push",
// new BsonDocument("OrderList."+j+".OrderDetail",
// new BsonDocument(od[i].ToDictionary()))
// }};
//mongoRepository.Collection.Update(query1, update);
#endregion #region 直接set
update = new UpdateDocument {{ "$set",
new BsonDocument("OrderList.$.UserName","大叔2015-09-21")
}};
mongoRepository.Collection.Update(query, update); update = new UpdateDocument {{ "$set",
new BsonDocument("OrderList.$.OrderDetail."+i,
new BsonDocument(orderDetail[i].ToDictionary()))
}};
mongoRepository.Collection.Update(query, update);
#endregion
break;
}
}
最后的结果是我们希望看到的,性能比之前的版本少了一层(二次分类)遍历,可以接受!
aaarticlea/png;base64,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" alt="" />
就大叔的性格来说,MongoDB的嵌套更新还会在研究,开发还会在继续,因为向4层的更新还没有实现,呵呵,开发进行中...
MongoDB学习笔记~使用原生语句实现三层集合关系的更新的更多相关文章
- MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本
介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...
- MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
一.count.distinct与group 1.count函数:查询文档数,如下图: 2.distinct:去重,用法:db.runCommand({distinct:"集合名" ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- MongoDB 学习笔记(原创)
MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- 【转】MongoDB学习笔记(查询)
原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ec ...
随机推荐
- Java多线程学习笔记
进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...
- 【406错误】 The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.
今天遇到一个奇怪的错误,关于Springmvc的,我明明在Controller方法中写了@ResponseBody,返回一个Map,结果报了406错误. 结果发现,少了一个jar包: 加上去就没事了.
- java删除文件夹
想删除本地一个项目目录,结果windows说路径太长,不能删除.于是试了试java删除.一切ok.以后一定要抓紧时间学python. /** * Created by rmiao on 4/21/20 ...
- 原来css中的border还可以这样玩
原来css中的border还可以这样玩 前面的话: 在看这篇文章之前你可能会觉得border只是简单的绘制边框,看了这篇文章,我相信你也会跟我一样说一句"我靠,原来css中的border还可 ...
- 谈I/O模型
一个IO操作涉及两个系统对象: 调用这个IO的用户Process/Thread 系统内核 - System Kernel 一个具体的Read操作包括两个阶段: 内核等待数据准备就绪:Waiting f ...
- 在DOS使用SVN之执行命令整理(TortoiseProc.exe)
原文链接: http://www.cnblogs.com/andrew-blog/archive/2012/08/21/SVN_DOS_Commands.html TortoiseSVN因为所有的命令 ...
- spring入门(五)【springMVC环境搭建】
springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...
- 从头开始搭建一个mybatis+postgresql平台
最近有个项目的数据库使用postgresql,使用原生态的mybatis操作数据,原生态的没什么不好,只不过国内有个tk.mybatis的工具帮助我们做了很多实用的事情,大多数情况下我们需要 ...
- discuz 3.x 核心文件class_core.php解析
class_core.php是discuz 3.x的核心文件,几乎所有PHP脚本都有引用此文件初始化论坛运行环境.以下解析引用3.2版discuz. line 12-15:常量定义IN_DISCUZ: ...
- 分享15款很实用的 Sass 和 Compass 工具
Sass 是 CSS 的扩展,增加了嵌套规则,变量,混入功能等很多更多.它简化了组织和维护 CSS 代码的成本.Compass 是一个开源的 CSS 框架,使得使用 CSS3 和流行的设计模式比以往任 ...