六、神奇MongoDB修改器

注:命令行中...代表可以续写的意思,不是重新写
1、简介
通常文档只有一部分需要更新,可以使用原子性的修改器,对某个字段进行更新。
比如,我要实时统计访问页面的总量,就可以通过原子性的修改器来完成。提前透漏这个修改器是“$inc”
注意:使用修改器时,"_id“值不能改变
2、"$set"修改器
”$set“用来指定一个字段的值,如果有这个字段就替换,如果没有就新增
例如:
最简单的应用:

还可以更换数据类型

删除某个字段$unset

遗留问题:unset后面写字段值得时候为什么写1?不过写对应他的值也是可以删除的
解决遗留问题:1代表全部
修改内嵌文档

3、$inc()用来增加已有键的值,如果该键不存在就新建一个(简单说这个东西就是个+),主要应用于整型,长整型,双浮点型的值

4、添加元素$push()
$push会向已有数组末尾加入一个元素


再加一个

5、$each用于操作比较复杂的数组操作,如果数组里面的元素只有一个,那就是相当于$push

6、$slice设定数组长度,值只能是负数,-10代表数组只包含最后加入的10个元素

7、$sort -1为倒叙,1位正序

8、$ne可以添加不重复的数据,如果存在则不添加如果不存在,则添加

9、$addToSet这种支持批量验证插入和$each搭配使用

10、$pop可以从数组的任何一段删除数据{"$pop":{"key":"-1"}}从头开始删,{"$pop":{"key":"1"}}从尾部开始删

11、$pull根据特定条件删除数据中的某一个元素

12、$inc在数组中的使用

13、$定位符,它只能定位一次,所以如果定位到多个地方,就只修改第一个
遗留问题:未实现成功
这个应该是有错误

14、$setOnInsert
创建文件的同时创建字段,并在之后的更新中这个字段的值都不会再改变

总结:
修改器在不修改文档大小时候的操作速度会很快,但是一旦涉及文档大小更改就会影响性能,比如inc就不回影响文档大小
没移动一次文档,就会增加集合的填充因子(增加空白空间),这个增加很多填充因子肯定是不好的。
如果操作在插入和删除时会进行大量的移动和打乱数据,就是用usePowerOf2Sizes提高磁盘的复用率
db.runCommand({"collMod":CollectionName,"usePowerOf2Sizes":true})
这种方法只适用于经常需要打乱数据的集合上使用,在只进行插入或原地更新的集合上使用会降低效率。这个只会影响设置之后新分配的数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能简介: 1.显示ID,按照玩家第一次上线的先后顺序排名ID,第一名为10001依次类推 如下图: 2.灭门、固定武器灭门掉血设置。除可开放灭门功能外,还可设置某种武器攻击门石掉血值。例如可以设置灭门期间攻击门石掉10点血,设置使用砸门槌攻击门石掉20点血。或可以直接设置不使用砸门槌攻击门石不掉血。 3.多级呐喊,实现多级呐喊。 4.呐喊随机几率赠送道具。可设置玩家喊话有几率获得某些道具。 5.单件装备特效。可设置玩家穿戴某件装备拥有暴击、吸血、金刚罩等特效。(特效名称可以自定义设置) 6.套装特效,可设置玩家穿戴齐全某套装备拥有暴击、吸血、金刚罩等特效。(特效名称可以自定义设置) 7.特效道具,可设置玩家物品栏内拥有某个道具拥有暴击、吸血、金刚罩等特效。(特效名称可以自定义设置) 8.千里传音、江湖流言功能 9.门武增强,可设置门武属性增强,提高门武属性。 10.装备爆出公告,可设置装备掉落全服公告。(且可设置,有几率掉落带段数装备。) 如下图: 11.可设置修炼满武功永久增加人物属性,例如可设置修炼满无名拳法永久增加人物100点攻击的属性等等 12.配偶系统,可写结婚脚本,玩家结婚后可显示玩家的配偶名称 如下图: 13.称号系统,可写脚本让玩家获得称号,玩家获得称号后可以显示玩家当前称号,并且可以设定称号增加玩家属性 如下图: 14.门派属性系统,可写脚本让门派获得门派属性加成,门派获得属性加成后,所有门派内的成员均可获得属性加成。 更多功能自己体验. 装备无限升段,可以制作领取等脚本,目前主流TGS插件!! 插件成功注入后,TGS变为下图样式

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值