MongoDB 如何更新数组里面的一组对象的属性?
dbDao 百度贴吧:http://tieba.baidu.com/dbdao
如下面的例子
语法如下:
db.collection.update(
{ },
{ : { "array.$.field" : value } }
)
db.students.insert ({
_id: 4,
grades: [
{ grade: 80, mean: 75, std: 8 },
{ grade: 85, mean: 90, std: 5 },
{ grade: 90, mean: 85, std: 3 }
]
})
db.students.update(
{ _id: 4, "grades.grade": 85 },
{ $set: { "grades.$.std" : 6 } }
)
> db.students.insert ({
... _id: 4,
... grades: [
... { grade: 80, mean: 75, std: 8 },
... { grade: 85, mean: 90, std: 5 },
... { grade: 90, mean: 85, std: 3 }
... ]
... })
WriteResult({ "nInserted" : 1 })
>
>
> db.students.update(
... { _id: 4, "grades.grade": 85 },
... { $set: { "grades.$.std" : 6 } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.students.find();
{ "_id" : 4, "grades" : [ { "grade" : 80, "mean" : 75, "std" : 8 }, { "grade" : 85, "mean" : 90, "std" : 6 }, { "grade" : 90, "mean" : 85, "std" : 3 } ] }
>
>
>
> db.students.find().pretty();
{
"_id" : 4,
"grades" : [
{
"grade" : 80,
"mean" : 75,
"std" : 8
},
{
"grade" : 85,
"mean" : 90,
"std" : 6
},
{
"grade" : 90,
"mean" : 85,
"std" : 3
}
]
}
若要多个filed 匹配则使用
db.students.update(
{
_id: 4,
grades: { $elemMatch: { grade: { $lte: 90 }, mean: { $gt: 80 } } }
},
{ $set: { "grades.$.std" : 6 } }
)
相关文章 | Related posts:
- mongodb $all操作符 $all操作符帮助选择collection中field是array类型的,且该array包含所有指定的元素的d […]...
- mongodb db.collection.remove用法 dbDao 百度贴吧:http://tieba.baidu.com/dbdao MongoDB技术学习QQ群: […]...
- MongoDB _id Key的一些信息 关于 mongodb _id key: _id key可以用户分配,也可以由mongodb自动分配,一般采用自 […]...
- MongoDB db.collection.remove()方法 mongodb中删除document采用remove方法, http://docs.mongodb.org/m […]...
- MongoDB $unset重置某个field 对于已经有值的field,在mongodb中可以使用$unset操作符来重置该field。 http://do […]...
- 了解db.collection.find() db.collection.find()可能是mongodb中最常用的方法之一了,其定义为db.collect […]...
- MongoDB db.collection. ensureIndex 和 db.collection.createIndex 注意从mongoDB 3.0开始ensureIndex被废弃,今后都仅仅是db.collection.crea […]...
- E11000 duplicate key & mongorestore mongorestore 可以将mongodump工具导出的数据导入到其他mongodb数据库中。 由于mon […]...
- C100DBA MongoDB讲解-update in replication C100DBA MongoDB讲解-update in replication dbDao 百度贴吧:http […]...
- MongoDB sharding collection 与 unique index dbDao 百度贴吧:http://tieba.baidu.com/dbdao MongoDB技术学习QQ群: […]...