MongoDB入门篇--增删改查

  

    在上篇博文mongodb已经成功启动:http://blog.csdn.net/u010773667/article/details/41847487,接下来就该进行一系列操作了。我们再开一个cmd,输入【mongo】命令打开shell即mongodb的客户端,默认连接的是“test”数据库,我这里设置集合(表)为student。图一:



1. 添加insert


语法:db.集合.insert({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})


2. 查找find


2.1全部查询


语法:db.集合.find()


2.2条件查询


语法:db.集合.find({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})


操作示例:添加+查找



 
注意:“_id"这个字段是数据库默认给我们加的GUID,目的是保证数据的唯一性。


3.修改


3.1全部修改update


语法:db.集合.update({“Col”:”列值”},{”Col2”:”列值2”,…,”Coln”:”列值n”})


注意:


第一个参数{…}为“查找的条件”,第二个参数{…}为“要更新的值”;
Update()为全部修改,第二个参数中需要包含全部的”字段”,否则更新后会造数据的丢失,具体影响请见下图示例。


操作示例:全部修改+错误实例



3.2.局部修改


Mongodb中为局部修改提供了两个修改器: $inc 和 $set。


 ① $inc修改器
$inc即increase的缩写,自增$inc指定的值,如果“文档”中没有此key,则会创建key。

语法:db.集合.update({"col1":"列值1"},{$inc:{"col2":"列值2",...,"coln":"列值n"}}


 ②  $ set修改器

直接将对应的数据替换为$set指定的值。

语法:db.集合.update({"col1":"列值1"},{$set:{"col2":"列值2",...,"coln":"列值n"}})


操作示例:局部修改+高级修改



3.3 upsert操作


Upsert=update+insert,智能判断更新或添加,所以我更愿意称之为高级修改。也就是说:如果查到了文档直接更新,否则在数据库里面新增一条。 将update的第三个参数设为true即可。操作示例见上图。


语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true)


3.4批量修改


在前面几个的基础上进行改进,不在多做解释。
语法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true,true)


操作示例:批量修改


4.删除remove


语法:db.集合.remove()
     db.集合.remove({"Col":"列值"},{"Col2":"列值2",…,"Coln":"列值n"})


操作示例:删除


(5~6为高级操作,不做详细介绍)


5.分组查询group


操作示例:分组查找


6.除重distinct
7.统计count


操作示例:除重+统计


    以上是我操作后的实例分享,再次操作一遍感觉收获的更多。还记得刚开始动手操作的时候,关于修改部分只接触了全部修改,当时那时候还以为跟其他数据库操作一样修改就是一个update()方法,所以实践的时候就直接进行了部分修改,后果就像图中显示的一样造成了数据丢失。当时还在想“不会吧,难道只修改一两个字段还要把所有的都写上吗?这也太麻烦了吧。。。”,后来跟旁边的大神周响师哥讨论他告诉我mongodb修改有两种方法也就是上文提到的mongodb专门封装的部分修改的方法。当时貌似当时走了弯路,不过现在想想真的是弯路吗?


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值