mongodb Java数组
来源:互联网 发布:淘宝售后高 编辑:程序博客网 时间:2024/06/05 19:52
比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下:
<!-- lang: js -->{ "_id" : "195861", "tags" : [ { "tagId" : NumberLong(766), "optDate" : ISODate("2013-08-12T15:21:02.930Z"), "enable" : true }, { "tagId" : NumberLong(778), "optDate" : ISODate("2013-08-12T15:21:02.930Z"), "enable" : true } ]}
下面对这个文档中的tag进行增删该查操作,这里用到了spring mongodb 里面的MongoTemplate类。我这里把tags里的内嵌文档抽象成了Tag类。代码删除和修改本身就包含查询方法,所以没写查询方法
代码如下:
<!-- lang: java -->/** * * @author zhangdonghao * */@Component("UserrTagServiceImpl")public class UserrTagServiceImpl implements UserrTagService {/** * Mongo DB Spring Template */@Resourceprotected MongoTemplate mongoTemplate = null;public UserrTagServiceImpl() {}/****给tags数组添加一个元素*/@Overridepublic Response<Integer> addTag(String id, Long tagId) {try {Tag tag = new Tag(tagId);tag.setOptDate(new Date());tag.setEnable(true);Query query = Query.query(Criteria.where("_id").is(id));Update update = new Update();update.addToSet("tags", tag);mongoTemplate.upsert(query, update, User.class);} catch (Exception e) {return new Response<Integer>(0);}return new Response<Integer>(1);}/****修改tags数组中内嵌文档指定一个元素的值*/@Overridepublic Response<Integer> disableTag(String id, Long tagId) {try {Query query = Query.query(Criteria.where("_id").is(id).and("tags.tagId").is(tagId));Update update = new Update();update.set("tags.$.enable", false);mongoTemplate.updateFirst(query, update, User.class);} catch (Exception e) {return new Response<Integer>(0);}return new Response<Integer>(1);}/****删除tags数组中指定的内嵌文档*/@Overridepublic Response<Integer> removeTag(String id, Long tagId) {try {Query query = Query.query(Criteria.where("_id").is(id).and("tags.tagId").is(tagId));Update update = new Update();update.unset("tags.$");mongoTemplate.updateFirst(query, update, User.class);} catch (Exception e) {return new Response<Integer>(0);}return new Response<Integer>(1);}public MongoTemplate getMongoTemplate() {return mongoTemplate;}public void setMongoTemplate(MongoTemplate mongoTemplate) {this.mongoTemplate = mongoTemplate;}}
阅读全文
0 0
- java Mongodb 查询数组
- mongodb Java数组
- 【MongoDB】Java驱动读写数组
- Java Spring 删除mongodb数组内置文档
- MongoDB 数组
- Java MongoDB下根据数组大小进行查询的方法
- [mongodb]java操作mongodb
- [mongodb]java操作mongodb
- [MongoDB]MongoDB Java 入门
- mongoDB查询数组详解
- MongoDB数组的操作
- MongoDB 数组查询
- mongodb 更新数组
- mongodb数组处理
- MongoDB查询数组
- MongoDB的查询数组
- mongodb笔记之数组
- mongodb数组写操作
- Swoole到底是个什么东西?
- Kibana非空查询
- Java并发编程:死锁(哲学家就餐)
- css3中一些常用的动画效果
- 浅谈c语言排序问题(冒泡排序)
- mongodb Java数组
- 自定义组件属性定义获取
- LeetCode刷题笔记(Two Sum)
- Java编程思想——持有对象
- bash_profile和bashrc区别
- sqlYang的注册码和密匙
- thinkphp5中进行联表查询
- 第2章 树莓派系统的安装与配置
- 1017. A除以B (20)