Mongodb-面向使用学习-基本操作-(改与删)

这一篇主要讲述MongoDB数据库的修改和删除操作,命令比较简单。

修改操作在实际应用中也是非常常用的。

·整体更新

命令:db.users.update({name:zslin.com}, {name:zslin.comage:30});

图片1.png 

此时已将namezslin.com的数据对应的age修改为30了。

如果命令写成:db.users.update({name:zslin.com}, {age:30})

图片2.png 

 

 

注:

1、users:集合名称

2、update:修改数据的函数,第一个参数为条件,第二个参数为修改值

 

问题:

在第二个参数中需要把所有字段都传入进来,如果一条数据有很多字段,又只修改其中的一个字段,这样的操作是比较麻烦的。

mongoDB的更新操作中有整体更新和局部更新的说法,上面所描述的更新就属于整体更新。

·局部更新

MongoDB中提供一两个修饰词用于局部更新:$inc 和 $set

1)$set:修改修饰词,用于修改指定字段值

命令:db.users.update({name:zslin.com}, {$set:{age:35}});

图片3.png 

注:

1、users:集合名称

2、update:修改的函数名

3、第一个参数为条件,第二个参数为值,但加了$set之后就只是将age这个属性的值修改为35了,其他所有字段不变

 

2)$incincrease的缩写,意为增长

命令:db.users.update({name:zslin.com}, {$inc:{age:10}});

图片4.png 

注:

1、users:集合名称

2、update:修改的函数名

3、第一个参数为条件,第二个参数为值,但用了$inc之后就将age的值修改为45了。$inc:{age:10}意为将age这个属性值增长10,长用于计算网站点击量等功能。如果是需要减少,则把对应的数值换成负数即可:

图片5.png 

 

·插入更新

有一些特殊的功能上会要求:先判断某数据是否存在,如果存在则修改,如果不存在则添加,在关系型数据库中一般是要执行两次数据库操作:1、查询;2、修改或添加。看一下在MongoDB中是如何实现的:

要修改namezhangsanage增加1(在我们的数据库中没有namezhangsan的数据)

命令:db.users.update({name:zhangsan}, {$inc:{age:1}}, true)

图片6.png 

注:

1、users:集合名称

2、update:修改的函数名

3、第一个参数为条件;第二个参数为修改值(将age增长1);第三个参数true(默认为false),意为如果没有找到数据则添加数据,所以再使用db.users.find()时多出了一条namezhangsanage1的数据。

 

·增加字段

还是使用update来完成,可见update的功能非常强大啊!

命令:db.users.update({name:zslin.com}, {$set:{city:yunnan}})

图片7.png 

为数据添加了一个名为city,值为yunnan的字段。同样也可以为另一条数据增加这个字段:

图片8.png 

 

·批量修改

此时这两条数据的city值都是yunnan

命令:db.users.update({city:yunnan}, {$inc:{age:2}})

根据mysql的思想,这两条数据的age都应该增长2,但结果却只修改了第一条:

图片9.png 

 

批量修改应该为第4个参数设置为true(默认为false

图片10.png 

注:

1、users:集合名称

2、update:修改的函数名

3、第一个参数为条件;第二个参数为修改值;第三个参数表示是在未找到数据时添加;第四个参数表示是否批量更新。

2、

·批量删除

Db.users.remove():删除users集合中的所有数据

注:

1、users:集合名称

2、remove:删除操作的函数名

remove中没有传递任何参数时表示删除对应集合中的所有数据,此操作非常危险(因为在实际应用中很少用到清空整个数据集合的),请谨慎操作!

 

·条件删除

db.users.remove({name:zhangsan})

图片11.png 

已将namezhangsan的数据删除了

删除操作比较简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值