spring mongodb修改器—$set、$unset、$inc

mongodb权威指南(中文版)下载

引子

   使用mongodb也有几个月时间了,从一开始茫然无知的用一点差一点,到后来抽出时间全面的去学习mongodb的基础实用知识,再到回过头来修改项目使用不当的地方。这么一个过程下来多多少少会有一些感触。
   基础的知识我这里就不介绍了,大家可以去下载mongodb权威指南(中文版)看一看,里面知识点都很全面。下面会写一点自己最近在使用的修改器知识。其它方面的陆陆续续可能会写一些进来。我工作中用的是spring mongodb,所以接下来的讲解中,原生mongodb的知识我只整理一些mongodb权威指南的内容,最后引入一些mongodb在spring中的用法。

$set

“$set”用来指定一个键的值

1、如果键不存在,则创建它。这对更新模式或者增加用户定义键来说非常方便:
例如,用户资料存储在下面这样的文档里:
这里写图片描述
这里写图片描述

2、如果键存在则修改
这里写图片描述

3、修改数据类型
这里写图片描述

4、修改内嵌文档
这里写图片描述
这里写图片描述

spring 中的用法:
修改UserInfo中_id为openId的两个字段。其中不带引号的openId、nickName、set为String变量

Query query = Query.query(Criteria.where("_id").is(openId));
Update update = new Update().update("nickName", nickName).update("sex", sex);
mongoTemplate.updateFirst(query, update, UserInfo.class);

update方法在spring中的源码如下:

public static Update update(String key, Object value){
    return (new Update()).set(key, value);
}

 public Update set(String key, Object value){
    addMultiFieldOperation("$set", key, value);
    return this;
}

unset

1、用来将键完全删除
这里写图片描述

spring 中的用法:
用法及在unset源码:

Update update = new Update().unset("nickName");

public Update unset(String key){
    addMultiFieldOperation("$unset", key, Integer.valueOf(1));
    return this;
}

$inc

用于,增加和减少:
1、键不存在时创建一个键
2、增加已有键的值
对于分析数据、因果关系、投票或者其他变化数值的地方,使用这个非常方便。
这里写图片描述
这里写图片描述

spring 中的用法:

Update update = new Update().inc("count", 1);

总结

   在后面我会继续再写一些spring mongodb的东西。在使用mongodb的过程中,我是一直在不停的修改、重构代码,没办法应该一开始的时候很多地方写的不大好,到后面发现有更好的方法的时候只能重新去修改方法,或者一些表结构。
   在这里分享一点自己的经验(只针对新人,老人可以忽略不看)。首先一定要找一份好的基础文档(如mongodb权威指南)过一遍。让自己知道都有哪些方法,用的时候在基础文档总找到合理的方法,一般都会有对应的spring mongodb方法。先对基础知识有一个全面的理解可以减少很多的犯错。至于创建集合的数据结构这方面,mongodb有专门讲创建集合的资料,看几遍。如果有可能多找懂的人请教一下。我由于条件限制,身边资源不多,项目初期可以算是不停的在改动,知道现在还在做一些优化...
   不可否认的,在这个过程中我也收到了很多人的帮助,感谢在这个过程中信任和帮助过我的人。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值