您的位置:首页 > 数据库 > Mongodb

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

2015-07-22 10:18 656 查看
mongodb权威指南(中文版)下载

引子

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


$set

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

1、如果键不存在,则创建它。这对更新模式或者增加用户定义键来说非常方便:

例如,用户资料存储在下面这样的文档里:






2、如果键存在则修改



3、修改数据类型



4、修改内嵌文档






spring 中的用法:

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

[code]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中的源码如下:

[code]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源码:

[code]Update update = new Update().unset("nickName");

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


$inc

用于,增加和减少:

1、键不存在时创建一个键

2、增加已有键的值

对于分析数据、因果关系、投票或者其他变化数值的地方,使用这个非常方便。






spring 中的用法:

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


总结

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