Mongdb操作嵌套文档
1、一个文档如下
db.posts.find()
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!",
"comments" : []
}
2、往_id等于"5388162dfc164ee1f39be37f"的文档中的comments插入数据
db.posts.update({"_id":ObjectId("5388162dfc164ee1f39be37f")},{$push:{"comments":{"content":"Good Article!","author":"Luxh"}}
再插入一条
db.posts.update({"_id":ObjectId("5388162dfc164ee1f39be37f")},{$push:{"comments":{"content":"Not bad!","author":"Chuliuxiang"}}})
结果如下
db.posts.find()
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!",
"comments" : [
{
"content" : "Good Article!",
"author" : "Luxh"
},
{
"content" : "Not bad!",
"author" : "Chuliuxiang"
}
]
}
3、根据内嵌文档查询
1)查询出Luxh评论过的文章
db.posts.find({"comments.author":"Luxh"})
结果如下:
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!",
"comments" : [
{
"content" : "Good Article!",
"author" : "Luxh"
},
{
"content" : "Not bad!",
"author" : "Chuliuxiang"
}
]
}
2)查询Luxh评论过的文章,返回指定的键
db.posts.find({"comments.author":"Luxh"},{"title":1,"content":1})
结果如下:
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!"
}
_id默认会返回。取消可设置"_id":0
4、修改
将author=Luxh评论的内容content修改为"I like it!"
db.posts.update({"comments.author":"Luxh"},{$set:{"comments.$.content":"I like it!"}})
结果如下:
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!",
"comments" : [
{
"content" : "I like it!",
"author" : "Luxh"
},
{
"content" : "Not bad!",
"author" : "Chuliuxiang"
}
]
}
5、删除
删除comments中author=Luxh的记录
db.posts.update({},{$pull:{"comments":{"author":"Luxh"}}})
结果如下:
{
"_id" : ObjectId("5388162dfc164ee1f39be37f"),
"title" : "Java Example",
"content" : "This is a example for Java!",
"comments" : [
{
"content" : "Not bad!",
"author" : "Chuliuxiang"
}
]
}
Mongdb操作嵌套文档的更多相关文章
- MongDb添加嵌套文档
想添加嵌套文档,就需要创建2个实体类.如下图 usermodel.Student = student; 其中Student的类型就是StudentModel: 第一个实体类 ...
- javascript DOM操作HTML文档
文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的 ...
- MongoDB(10)- 查询嵌套文档
插入测试数据 db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: & ...
- 操作xml文档的常用方式
1.操作XML文档的两种常用方式: 1)使用XmlReader类和XmlWriter类操作 XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点 ...
- 文档对象模型操作xml文档
简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...
- 操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox
原文 操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox 很久没自己写写心得日志与大家分享了,一方面是自己有点忙,一方面是自己有点懒,没有及时总结.因为实践是经验的来源,总结 ...
- iText操作word文档总结
操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...
- C#操作Word文档(加密、解密、对应书签插入分页符)
原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...
- js介绍,js三种引入方式,js选择器,js四种调试方式,js操作页面文档DOM(修改文本,修改css样式,修改属性)
js介绍 js运行编写在浏览器上的脚本语言(外挂,具有逻辑性) 脚本语言:运行在浏览器上的独立的代码块(具有逻辑性) 操作BOM 浏览器对象盒子 操作DOM 文本对象 js三种引入方式 (1)行间式: ...
随机推荐
- SpringQtz 时间任务调度
1.配置所需要maven jar包 <!-- 任务调度需要的jar包--> <dependency> <groupId>org.quartz-scheduler&l ...
- SQL SERVER 只有MDF文件的恢复
方式一: .create a database same name as .mdf file; .Stop SQL Server; . recover .mdf file; . Start SQL S ...
- PhoneGap原理分析
PhoneGap提供了Native Api的支持(如:重力感应.相机.联系人.文件.地址位置…), 比如要用js获取本机的联系人,可以用: var options = new ContactFindO ...
- Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法
Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...
- rdynamic和-whole-archive
遇到如下情况,主程序通过dlopen来打开.so文件,但是.so用到了主程序的log函数. 编译so时,通过引用主程序头文件来编译通过,头文件有log函数声明: extern "C" ...
- TMS320C54x系列DSP的CPU与外设——第8章 流水线
第8章 流水线 本章描述了TMS320C54x DSP流水线的操作,列出了对不同寄存器操作时的流水线延迟周期.(对应英语原文第7章) 8.1 流水线操作 TMS320C54x DSP有一个6段的指令流 ...
- MySQL key/value存储方案(转)
需求 250M entities, entities表共有2.5亿条记录,当然是分库的. 典型解决方案:RDBMS 问题:由于业务需要不定期更改表结构,但是在2.5亿记录的表上增删字段.修改索引需要锁 ...
- MyEclipse9中的不伤眼修改、FreeMarker插件、JQuery提示插件、全屏(FullScreen)插件的安装
============下载相关附件===================== http://files.cnblogs.com/fhtwins/eclipse-fullscreen_1.0.7.zi ...
- [JavaWebService-axis]-环境搭建
一.准备 1.下载环境需要的zip包 JDK Eclipse axis(http://axis.apache.org/axis2/java/core/download.html)(axis2-1.7. ...
- solr基于tomcat增加主界面登录权限
tomcat-user.xml增加下面标签(用户名,密码,角色)<user username="admin" password="new-password" ...