Mongo对内嵌文档的CRUD
{
"_id" : ObjectId("5706032acd0a6194868cf53e"),
"list" : {
"age" : 22.0,
"name" : "qiaoansheng"
},
"BookS" : [{
"bookName" : "在绝望中寻找希望"
}]
}
现在数据库中有这么一个文档,下面就是对他进行一系列的增删改查
增
我需要在list中再加一个key school
db.ansheng.update({"_id":ObjectId("5706032acd0a6194868cf53e")},{"$set":{"list.school":"驻马店第一高级中学"}})
执行完成后结果如下
{
"_id" : ObjectId("5706032acd0a6194868cf53e"),
"list" : {
"age" : 22.0,
"name" : "qiaoansheng",
"school" : "驻马店第一高级中学"
},
"BookS" : [{
"bookName" : "在绝望中寻找希望"
}]
}
删
改
{
"_id" : ObjectId("5706032acd0a6194868cf53e"),
"list" : [{
"age" : 13.0,
"name" : "张三",
"school" : "驻马店市第一小学"
}, {
"bookName" : "在绝望中寻找希望",
"money" : 188.0
}, {
"age" : 23.0,
"name" : "隔壁老王",
"cshool" : "家里蹲大学"
}],
"BookS" : [{
"bookName" : "在绝望中寻找希望"
}],
"aaaaa" : 20.0
}
现在有上面的这一个文档,对list中的数据进行一些列的修改
$inc 可以用来修改 值类型的数据,不能修改长字符串类型的数据
db.ansheng.update({"aaaaa":20},{"$inc":{"list.0.age":2}})
db.【对应的表】.update(【查询参数】,{"$inc":{"list.【这个集合的下标】.【需要修改的字段名称】":2}})
根据 name 修改 隔壁老王 的年龄
db.ansheng.update({"list.name":"隔壁老王"},{"$inc":{"list.$.age":100}})
这种方法只会修改第一个匹配到的数据,如果这个集合中还有一个 隔壁老王 则它的age是不会修改的
查
db.nqwd.find({"books.name":"语文"})//可以匹配到内嵌文档中 包含语文的所有数据
当我需要找到 name为语文并且money为200的数据
db.nqwd.find({"books.name":"语文","books.money":200})或者
db.nqwd.find({books:{"$elemMatch":{name:"语文",money:200}}})
Mongo对内嵌文档的CRUD的更多相关文章
- mongodb 对内嵌文档(数组) group分页查询,并设置查询条件
文档示例Account的其中一条记录: // collection: Account { "_id" : ObjectId("5843e38e535f3708f759b2 ...
- mongodb内嵌文档的javaapi,增删改查
数据结构: {"_id" : "000000001", //Mongodb默认主键 "UID" : "000000001&quo ...
- mongodb对数组元素及内嵌文档进行增删改查操作(转)
from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...
- 学习MongoDB 五: MongoDB查询(数组、内嵌文档)(二)
一.简介 我们上一篇介绍了db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段,我们今天介绍了对数组和内嵌文档的查询操作,尤其是 ...
- MongoDB-4: 查询(二-数组、内嵌文档)
一.简介 我们上一篇介绍了db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段,我们今天介绍了对数组和内嵌文档的查询操作,尤其是 ...
- mongoTemplate操作内嵌文档
关系型数据库中,表与表的关联关系有1:1,也有1:n的.在java的面向对象的世界里就是主对象嵌子对象,与主对象嵌集合<子对象>的两种形式. 主对象嵌子对象操作: 新增.修改都直接用如下方 ...
- MongoDB对数组元素及内嵌文档进行增删改查操作
比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: { "_id" : "195861", &qu ...
- MongoDB 内嵌文档
MongoDB是文档型的数据库系统,doc是MongoDB的数据单位,每个doc相当于关系型数据库的数据行(row),doc和row的区别在于field的原子性:row中的column是不和分割的原子 ...
- 使用DOM进行xml文档的crud(增删改查)操作<操作详解>
很多朋友对DOM有感冒,这里我花了一些时间写了一个小小的教程,这个能看懂,会操作了,我相信基于DOM的其它API(如JDOM,DOM4J等)一般不会有什么问题. 后附java代码,也可以下载(可点击这 ...
随机推荐
- 开始写github
公司即将开发手机钱庄网,于是最近在写一些手机上常用的js组件做前期准备. 之所以没有沿用pc的那些插件,原因是: 之前的插件大多数是使用jquery写的 移动端的性能要求更严格 以前写的插件从现在看看 ...
- python 类访问控制
访问限制 我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办? Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问.看例子: ...
- BFS+模拟 ZOJ 3865 Superbot
题目传送门 /* BFS+模拟:dp[i][j][p] 表示走到i,j,方向为p的步数为多少: BFS分4种情况入队,最后在终点4个方向寻找最小值:) */ #include <cstdio&g ...
- WPF 文本框添加水印效果
有的时候我们需要为我们的WPF文本框TextBox控件添加一个显示水印的效果来增强用户体验,比如登陆的时候提示输入用户名,输入密码等情形.如下图所示: 这个时候我们除了可以修改TextBox控件的控件 ...
- Ural 1018 (树形DP+背包+优化)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题目大意:树枝上间连接着一坨坨苹果(不要在意'坨'),给 ...
- new在c#方法中的使用
new在c#中有三种用法: 1.实例化对象 2.泛型约束 3.用在方法前.new和override的区别在于:override用于重写父类的方法:new用于隐藏方法,它调用的方法来自于申明的类,如果申 ...
- JS让input按钮不能点击
<input value="开通" type="button" id="tijiao" class="button" ...
- Hadoop如何恢复被删除的文件
hadoop的hdfs中被删除文件的恢复原理和回收站原理是一样的,就是在删除hdfs文件时,被删除的文件被移动到了hdfs的.Trash文件夹中,恢复时只需将该文件夹中文件拿出即可.具体操作如下: 1 ...
- 【产品更新】EVC8013 硬件更新!
EVC8013 三合一磁耦合隔离转换器(USB转RS-232 / RS-485 / RS-422 ),迎来一次硬件大幅度升级,升级不加价! 本次升级主要有以下几个方面: 1.采用第二代金升阳 3000 ...
- 初学者对Spring MVC的认识
首先是要一定说明的是,这倒是说明是什么?对吧Spring MVC 是SpringFrameWork的后续产品,并且已经融入到Spring Web Flow中同时Spring MVC 分离了控制器,模型 ...