数组更新操作符 Array Update Operators
只能用在键值为数组的键上的数组操作。
$ (query)
语法: { "<array>.$" : value }
当对数组字段进行更新时,且没有明确指定的元素在数组中的位置,我们使用定位操作符$标识一个元素,数字都是以0开始的。
示例说明:
users集合
{
"_id" : ObjectId("5b3d68eb7bd10a0008c1e3e6"),
"username" : "aaa",
"password" : "88316675d7882e3fdbe066000273842c",
"role" : ObjectId("5a759e69cfcd053fc6dd5a27"),
"nickname" : "a",
"mail" : "",
"phone" : "",
"creator" : "admin",
"update_date" : null,
"space" : [
{
"end_time" : ISODate("2018-08-03T07:38:57.388Z"),
"start_time" : ISODate("2018-07-04T07:38:57.388Z"),
"size" : 500,
"type" : 1
}
],
"status" : "0",
"create_date" : ISODate("2018-07-05T00:40:11.061Z"),
"delete_flag" : "0",
"__v" : 0
}
更新所有users中space数组中第一个元素size,由500更新为1024*20
db.getCollection('users').update({"delete_flag":"0"},{$set:{"space.0.size":1024*20}},{multi:true})







网友评论