MongoDB 修改

https://blog.csdn.net/congcong68/article/details/46781777

1. 修改的语法

db.collection.update(  
  <query>,  
  <update>,  
   upsert:<boolean>,  
   multi:<boolean>  
)  

参数

类型

描述

query

document

要修改哪些的查询条件,类似于SQL 的 where

update

document

要修改的字段对应的值

upsert

boolean

可选的,默认值是false。如果根据查询条件没找到对应的文档,如果设置为true,相当于执行insert,如果设置为false,不做任何的操作。

multi

boolean

可选的,默认值是false。如果根据查询条件找到对应的多条记录是,如果设置为false时,只修改第一条,如果设置为true,全部更新

2.对单个字段进行修改 参数update部分

名称

描述

$inc

根据要添加的值递增该字段的值。

$mul

将该字段的值乘以指定的值

$rename

重命名字段

$setOnInsert  

操作时,操作给相应的字段赋值(不知道啥意思)

$set

用来指定一个键的值,如果不存在则创建它

$unset

用来指定一个键的值,如果不存在不创建创建它

$min

只有当指定的值小于现有字段值时才更新该字段。

$max

只有当指定的值大于现有字段值时才更新该字段。


 

1> 用$set来根据查询条件修改文档,用来指定一个键的值,如果不存在则创建它

db.orders.update(                            
   {"onumber" : "001"},  
   { $set: { "cname " : "zcy"} },  
   false,  
   true  
)  

2>$mul  将该字段的值乘以指定的值

{ $mul: { field: <number> } }  
>db. orders.update(                            
{"ino" : "001"},  
{ $mul: {"quantity" :3} }  
)  

quantity的值*3 后设置

3>$inc,指定属性的值加上现在的值,如果键不存在则创建它。

{ $inc: { <field1>: <amount1>,<field2>: <amount2>, ... } }
>db. orders.update(                            
{"onumber" : "001","items.ino":"001"},  
{ $inc: {"items.price" : 2.0} }  
)  
3.对数组进行修改

名称

说明

$

作为一个占位符的更新与查询条件在一个更新的第一要素

$addToSet

将元素添加到数组中,仅当它们在集合中不存在

$pop

删除数组的第一个或最后一个项

$pullAll

从数组中移除所有匹配值

$pull

移除匹配指定查询的所有数组元素

$pushAll

将所有值添加到数组中

$push

将值添加到数组中,如果有的数组存在则向数组末尾添加该值,如果数组不存在则创建该数组并保存该值

1> $: 更新数组中第一个匹配的子文

db. orders.update(                            
{"onumber" : "001","items.ino":"001"},  
{ $set: {"items.$.price" : 8.0} }  
)  
db. orders.update(                            
{"onumber" : "001","items.ino":"001","items.products.pno":"001"},  
{ $set: {"items.0.products.$.pName": "ps"} }  
)  

语法items.0. products.$. pName,0代表items第一个数组(也就是数组的下标),$ 更新数组中第一个匹配的子文档。

2> $pop删除数组的第一个或最后一个项

{ $pop: { <field>: <-1 | 1>,... } } 

1最后一项

-1是第一项

3> $push将值添加到数组中,如果有的数组存在则向数组末尾添加该值,如果数组不存在则创建该数组并保存该值

{ $push: { <field1>: <value1>,... } }  


猜你喜欢

转载自blog.csdn.net/zhuchunyan_aijia/article/details/80374459