MongoDB怎么对Document插入、删除及更新


这篇文章主要介绍了MongoDB怎么对Document插入、删除及更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MongoDB怎么对Document插入、删除及更新文章都会有所收获,下面我们一起来看看吧。shell当中不支持批量插入,想完成批量插入操作,可以使用shell的for循环,或者其他高级语言当中的批量操作方法例:使用for循环插入10个学生,在学生集合当中我使用的是2.6的版本,发现已经支持了批量插入操作。save操作和insert操作的区别在于,save在遇到_id相同的插入数据时候,会覆盖原来的,而insert会提示错误例子:用insert的方法去插入一个_id相同的数据集合的本身和索引不会别删除例子:删除列表中所有数据例: 删除_id为10的那条记录{查询器}就相当于是条件{修改器}就是你要直接覆盖替换的BSON数据例:更新_id为9,那个学生,把Name变成age注意:当主键冲突的时候会报错并且停止更新操作例:我用_id为8的数据,去替换_id为9的记录,因为_id为8的数据已经存在,不允许有两个主键为_id:8的记录,所以会报错。后面第三个参数为true,就代表是当记录不存在的时候,就插入一条记录,如果存在就更新例:更新一个_id为10的数据,没有就插入,有就更新※默认情况当查询器查询出多条数据的时候默认就修改第一条数据先修改一下数据如下:让_id为9和10的数据,有相同的内容再插入一个_id=11,免费云主机域名age=20的数据第四个参数不写的情况下去更新:如下:只能更新第一个age=20的数据第四个参数添加并且为true的时候,我们预期是10和11都能被修正但是当我试图去更新的时候,报错了,提示说批量更新只能在有$操作的时候使用修正插入语句这里注意$set后面要有”:”,而且它和它后面的修改器要被{}包起来,因为我第一次使用mongoDB,所以总写错。$set它用来指定一个键值对,如果存在键就进行修改不存在则进行添加_id为10的数据,没有Name属性,进行了添加,有age键,就进行了修改$inc1.适用于数字类型2.能够对键对应的数字类型数值进行加减操作给age=30的数据增加2岁,由于没有使用批量更新参数,所以默认修正了第一条$unset删除指定的键我在例子里面先是删除了age=30的数据的age属性,但是有一点不明白,unset后面那个field:1是什么,于是我查了一下,说是后面是什么都无所谓,unset只看键不看value,于是又做了第二个例子$push1.如果指定的键是数组增追加新的数值2.如果指定的键不是数组则中断当前操作,报错3.如果不存在指定的键则创建数组类型的键值对$pushAll用法同上,是批量添加数组数据的操作1.第一个操作没有用$pushAll,所以把[“C#”,”JAVA”]当成一个数组项目处理了2.第二个操作使用了$pushAll,所以当成了两项来处理的。$addToSet往数组中添加项目,存在就不添加,不存在就添加(push不管存不存在都添加)1.先用push插入,发现更新完成后有两个“C#”2.再用addToSet更新,发现没有增加项目$pop从指定数组删除一个值1删除最后一个数值,-1删除第一个数值1.删除最后一个索引位置的数据,后面的value用”1″2.删除第一位置索引的数据,value=-1$pullpush的逆向操作,删除键是数组的项目中的指定元素$pullAll批量删除数组中的指定元素$ 数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($)1.实例第一个是在刚刚清空的数组里面添加了两个元素2.我想在{“SubID”:1,”SubName”:”MangoDB”}这个对象里面再添加”Teacher”:”Lucy”理解:首先从上面的例子中我们知道,addToSet这个修改器,可以判断是否项目存在,不存在的时候就直接插入。此时我有一个功能,例如我想往一个存在数据的数组中批量更新数据,如果存在就不更新。那么只使用addToSet是不能进行批量的,于是就要结合$each来实现。例:1.新创建一个文件,并使用pushAll修改器添加数据:2.我想要批量插入”C#”,”PHP”,”JavaScript”,”JAVA”,要求不能有重复的如果这时候我直接用pushAll来进行更新的话,”C#”和”JAVA”就会有重复在shell当中输入如下命令:关于“MongoDB怎么对Document插入、删除及更新”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“MongoDB怎么对Document插入、删除及更新”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: Feign超时在yml文件里怎么配置

这篇文章主要介绍“Feign超时在yml文件里怎么配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Feign超时在yml文件里怎么配置”文章能帮助大家解决问题。SpringBoot集成Feign在不使用注册中心实现模…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/20 16:00
Next 03/20 17:11

相关推荐