MongoDB入门篇--增删改查
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB入门篇--增删改查,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2691字,纯文字阅读大概需要4分钟。
内容图文
![MongoDB入门篇--增删改查](/upload/InfoBanner/zyjiaocheng/560/e84e8c251f624d4fa9858a285ecb5ab9.jpg)
mongodb成功启动,接下来就该进行一系列操作了。我们再开一个cmd,输入【mongo】命令打开shell即mongodb的客户端,默认连接的是test数据库,我这里设置集合(表)为student。图一: 1. 添加insert 语法:db.集合.insert({Col1:列值1,Col2:列值2,,Coln:列值n}
mongodb成功启动,接下来就该进行一系列操作了。我们再开一个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专门封装的部分修改的方法。当时貌似当时走了弯路,不过现在想想真的是弯路吗?
内容总结
以上是互联网集市为您收集整理的MongoDB入门篇--增删改查全部内容,希望文章能够帮你解决MongoDB入门篇--增删改查所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。