MongoDB 修改

https://blog.youkuaiyun.com/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} }  
)  

4> $rename  重命名字段

> db.orders.update({"metadata.systemtag":"xxxx"},{$rename: { 'data.aaaa':'data.bbbb','data.cccc':'data.dddd' }},false,true)
 

5> MongoDB删除指定字段
db.collection.update({},{"$unset":{"key":""}},{multi:true})

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>,... } }  

### 回答1: 要修改MongoDB中的数据,您可以使用update()方法。update()方法允许您指定修改的文档的条件以及要进行的更新操作。 以下是一些常见的更新操作示例: 1. 更新一个字段的值 假设您有一个名为“users”的集合,其中包含名为“John”的用户文档,您可以使用以下代码将其电子邮件地址从“john@example.com”更改为“john@newexample.com”: ``` db.users.update( { name: "John" }, { $set: { email: "john@newexample.com" } } ) ``` 2. 更新多个字段的值 您可以使用相同的“$set”操作符将多个字段的值更新为文档: ``` db.users.update( { name: "John" }, { $set: { email: "john@newexample.com", age: 30, location: "New York" } } ) ``` 3. 增加一个字段的值 您可以使用“$set”操作符来增加一个新的字段,如下所示: ``` db.users.update( { name: "John" }, { $set: { "address.city": "New York" } } ) ``` 在上面的示例中,“address”是一个嵌套的文档,您可以使用点符号访问它的子字段。 4. 删除一个字段 要删除一个字段,您可以使用“$unset”操作符: ``` db.users.update( { name: "John" }, { $unset: { email: 1 } } ) ``` 在上面的示例中,“email”字段将从文档中删除。 请注意,这些操作都只会修改符合指定条件的第一条文档。如果您需要更新多个文档,请使用updateMany()方法。 ### 回答2: 以MongoDB中文档的方式存储数据是一种常见的方法。修改MongoDB中的数据可以通过使用update或updateMany方法来实现。 1. 使用update方法: - 首先,选择你想要修改数据的集合(collection)。 - 然后,确定你希望修改的文档(document),并使用条件(criteria)来定位该文档。例如,你可以使用_id字段来定位唯一文档。 - 最后,指定你想要修改的数据字段,并提供要进行修改的新值。 - 示例代码如下: ``` db.collectionName.update( { _id: ObjectId("文档ID") }, { $set: { 字段名: 新值 } } ) ``` 2. 使用updateMany方法: - 当你希望修改多个文档时,可以使用updateMany方法。和update方法类似,你需要选择集合,并使用条件定位需要修改的文档。 - 示例代码如下: ``` db.collectionName.updateMany( { 条件 }, { $set: { 字段名: 新值 } } ) ``` 需要注意的是,MongoDB中的修改操作是原子性的,即要么所有的修改都会被应用,要么都不会被应用。此外,你还可以使用其他操作符(如$inc、$push等)来修改文档中的数据。 总结:MongoDB中使用update或updateMany方法来修改数据。你需要选择集合,并使用条件定位需要修改的文档。然后,指定要修改的数据字段和新值。注意,修改操作是原子性的,且你可以使用其他操作符来修改数据。 ### 回答3: MongoDB是一款非关系型数据库管理系统,具有丰富的功能和灵活的数据操作方式。要修改MongoDB中的数据,可以通过以下几个步骤: 1. 连接到MongoDB数据库:使用MongoDB提供的连接方法,连接到目标数据库服务器。可以使用MongoDB的默认端口号(27017)以及数据库的连接字符串。 2. 选择要修改的数据集合:在连接成功后,选择要修改的数据集合(类似于关系型数据库中的表)。可以使用MongoDB的db.collection()方法指定集合名称,并将其赋给一个变量。 3. 查询要修改的数据:使用find()方法查询满足修改条件的数据。可以使用查询条件,如字段相等、大于或小于等,来过滤出需要修改的数据。该方法返回一个游标,可以通过遍历来获取数据。 4. 修改数据:对查询到的数据进行修改。可以使用update()方法来更新数据。此方法接收两个参数,第一个参数是查询条件,用于指定要修改哪些数据;第二个参数是要修改的值,用于指定修改后的新值。 5. 执行修改操作:保存对数据的修改。通过调用update()方法,将修改后的数据保存到数据库中。可以设置多个选项:如是否批量修改、是否插入新数据等。 6. 检查修改结果:可以通过方法的返回值来检查修改是否成功。根据返回的结果,可以判断是否需要进一步处理。 7. 关闭数据库连接:最后,使用close()方法关闭数据库连接,释放资源。 以上就是使用MongoDB修改数据的基本过程。需要注意的是,MongoDB的数据修改操作相对灵活,可以直接修改字段的值,也可以添加新的字段。而且,由于MongoDB不需要像关系型数据库那样预先定义表结构,可以根据需要动态修改数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值