Mongodb数组操作$(update)、$占位符更新嵌套数组、嵌套文档集合
来源:互联网 发布:淘宝怎么修改一口价 编辑:程序博客网 时间:2024/06/06 02:40
一、更新数组中的值
看如下students文档中的数据:
db.students.insert({_id:NumberInt(1),grades:[NumberInt(80),NumberInt(85),NumberInt(90)]})db.students.insert({_id:NumberInt(2),grades:[NumberInt(88),NumberInt(90),NumberInt(92)]})db.students.insert({_id:NumberInt(3),grades:[NumberInt(85),NumberInt(100),NumberInt(90)]})
/* 1 */{"_id" : 1,"grades" : [ 80, 85, 90]}/* 2 */{ "_id" : 2,"grades" : [ 88, 90, 92 ]}/* 3 */{"_id" : 3,"grades" : [ 85, 100, 90]
将第一个文档中grade字段中值为80更新为82,如果不知道数组中元素的位置,可以使用位置$操作符。
db.students.update({_id:1, grades:80},{$set:{'grades.$':NumberInt(82)}})
请记住,位置$操作符充当更新文档查询中第一个匹配的占位符。
二、使用位置操作符$访问数组中嵌套的字段
db.collection.update( { <query selector> }, { <update operator>: { "array.$.field" : value } })
看如下students文档集合中grades的嵌套文档集合
{ _id: 4, grades: [ { grade: 80, mean: 75, std: 8 }, { grade: 85, mean: 90, std: 5 }, { grade: 90, mean: 85, std: 3 } ]}
更新集合文档的嵌套文档的grade值为85的文档的std字段的值为6
db.students.update( { _id: 4, "grades.grade": 85 }, { $set: { "grades.$.std" : 6 } })
三、使用多个字段匹配更新嵌入式文档
位置操作符$能够更新第一个匹配的数组元素通过$elemMatch()
操作符匹配多个内嵌文档的查询条件
考虑如下的students集合文档grades字段是一个嵌套字段的文档
{ _id: 4, grades: [ { grade: 80, mean: 75, std: 8 }, { grade: 85, mean: 90, std: 5 }, { grade: 90, mean: 85, std: 3 } ]}
如下语句会更新嵌套文档中的std值为6,条件是文档的主键是4,字段grades的嵌套文档字段grade字段值小于等于90mean字段值大于80
db.students.update( { _id: 4, grades: { $elemMatch: { grade: { $lte: 90 }, mean: { $gt: 80 } } } }, { $set: { "grades.$.std" : 6 } })
上面的操作语句会更新掉第一个匹配的嵌套文档集合,如下:
{ _id: 4, grades: [ { grade: 80, mean: 75, std: 8 }, { grade: 85, mean: 90, std: 6 }, { grade: 90, mean: 85, std: 3 } ]}
阅读全文
0 0
- Mongodb数组操作$(update)、$占位符更新嵌套数组、嵌套文档集合
- mongodb update多层嵌套数组
- mongodb update多层嵌套数组解决办法
- mongoDB javaAPi 添加嵌套数组数据 更新
- Mongodb嵌套文档的修改-利用数组修改器更新数据
- Mongodb嵌套文档的修改-利用数组修改器更新数据
- MongoDB学习笔记~官方驱动嵌套数组对象的更新
- mongodb多层嵌套数组查询
- mongodb 中嵌套数组的且查询
- 集合(索引表,嵌套表,变长数组)
- oracle:变长数组varray,嵌套表,集合
- mongo两级数组嵌套数据更新问题
- mongodb 批量更新 操作文档的数组键
- 论mongo-connector如何将MongoDB中的json数组和嵌套对象更新至Solr引擎
- Mongodb更新数组操作$each修饰符
- Mongodb更新数组$push操作符
- Mongodb更新数组$sort操作符
- MongoDB之数组更新操作
- 机器学习实战 决策树代码 计算香农熵 Error return arrays must be of ArrayType
- angular框架的SmartAdmin模板 如何请求后台数据
- 575. Distribute Candies
- git 常用命令
- php中 $$str 中 "$$"是什麽意思
- Mongodb数组操作$(update)、$占位符更新嵌套数组、嵌套文档集合
- myBatis逆向
- springmvc 参数绑定
- 算法刷题心得:动态规划 scramble-string
- Git-撤销(回退)已经add,commit或push的提交
- JavaScript消息框
- 模拟实现shell
- 菜鸟上路!
- Spring Data JPA注解@DynamicInsert和@DynamicUpdate