mongoTemplate增删改查
mongoTemplate简单用法(增删改查)
1、在实体类MgUser.java中引入注解表明转换方式
@Data
//需要与mongo中对象(文档)名一致
public class MgUser {
@Id
private ObjectId _id; //插入mongo时会自动生成_id,如果不加这个字段则会把id属性当成_id
@Field
private Long id;
private String nikename;
private String phone;
/**
*提供set/get和toString方法
*/
}
2、配置MongoTemplate
在.xml中添加bean如下
<mongo:mongo host="127.0.0.1" port="27017"/>
<mongo:db-factory dbname="mg" mongo-ref="mongo" id="DbFactory"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="DbFactory"/>
</bean>
3、将MongoTemplate注入DAO,并调用其相关方法进行CURD(创建(Create)、更新(Update)、读取(Read)和删除(Delete))操作
public class TestMonoTemplate{
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void testCURD(){
//测试增删改查操作(此处简化举例)
mongoTemplate.save();//添加
mongoTemplate.find(); //查询操作
mongoTemplate.findOne();//单个结果查询操作
mongoTemplate.updateFirst();//进行第一条符合要求的数据更新
mongoTemplate.updateMulti();//进行更新多行数据
mongoTemplate.remove();//进行数据删除
}
}
分页时查找数量:
1
2
3
4
5
6
7
|
public long countSample(String id) {
Query query = new Query();
if (StringUtil.hasText(id))
query.addCriteria(Criteria.where( "creator" ).is(id));
return mongoTemplate.count(query, Sample. class );
}
|
分页:
1
2
3
4
5
6
7
8
9
10
11
12
|
public List<Sample> searchAllSample(String id, PageTag page) {
Query query = new Query();
query.with( new Sort( new Sort.Order(Sort.Direction.DESC, "update_date" )));
int skip = (page.getCurrentPage() - 1 ) * page.getPageSize();
if (StringUtil.hasText(id)) {
Criteria criteria = Criteria.where( "creator" ).is(id);
query.addCriteria(criteria);
}
query.skip(skip); // 从那条记录开始
query.limit(page.getPageSize()); // 取多少条记录
return mongoTemplate.find(query, Sample. class );
}
|
修改数量:
1
2
3
4
5
6
7
|
public void modifyHitNumByNo(String no) {
Query query = new Query();
query.addCriteria(Criteria.where( "sap_no" ).is(no));
Update update = new Update();
update.inc( "hit_num" , 1 );
mongoTemplate.updateFirst(query, update, Project. class );
}
|
模糊查询:
1
2
3
4
5
6
7
8
|
public List<Sample> findSamples(String memberId, SelectVo selectVo) {
Criteria criteria = Criteria.where( "creator" ).is(memberId);
if (StringUtil.hasText(selectVo.getName())) {
Pattern pattern = Pattern.compile( "^.*" + selectVo.getName() + ".*$" , Pattern.CASE_INSENSITIVE);
criteria.orOperator(Criteria.where( "projectNo" ).regex(pattern), Criteria.where( "name" ).regex(pattern));
}
return findPageList(Query.query(criteria), Sample. class , new PageTag(selectVo.getPage(), selectVo.getPageSize()));
}
|
一般查询:
1
2
3
4
5
6
7
8
|
public List<Project> getProjects(String creator) {
Query query = new Query();
if (StringUtil.hasText(creator)) {
Criteria criteria = Criteria.where( "creator" ).is(creator);
query.addCriteria(criteria);
}
return mongoTemplate.find(query, Project. class );
}
|
1
2
3
4
5
6
|
public Experiment getExperimentByExpNo(String expNo) {
Query query = new Query();
Criteria criteria = Criteria.where( "exp_no" ).is(expNo);
query.addCriteria(criteria);
return mongoTemplate.findOne(query, Experiment. class );
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public void saveOrUpdateExperiment(Experiment experiment) {
if (StringUtil.hasText(experiment.getExpNo())) {
Query query = new Query();
Criteria criteria = Criteria.where( "exp_no" ).is(experiment.getExpNo());
query.addCriteria(criteria);
Experiment exp = mongoTemplate.findAndRemove(query, Experiment. class );
experiment.setCreator(exp.getCreator());
experiment.setCreateDate(exp.getCreateDate());
}
mongoTemplate.save(experiment);
}
|
mongoTemplate增删改查相关推荐
- Spring Boot 中使用 MongoDB 增删改查
本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查 1.什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件 ...
- servlet增删改查实例_SpringBoot系列(2)整合MongoDB实现增删改查(完整案例)
自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整 ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
- springMVC操作mongoDB增删改查
下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...
- java mongodb怎删改查_Java连接MongoDB进行增删改查
1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.bea ...
- SpringBoot增和MongoDB实现增删改查、复合查询
SpringBoot增和MongoDB实现增删改查.复合查询 依赖 <dependency><groupId>org.springframework.boot</grou ...
- Spring Boot整合MongoDB实现增删改查
MongoDB这两年来是本人一直使用较多的,之前的使用大多通过封装的工具类对数据库进行操作,虽然也算稳定,但有了Spring Boot之前的工具类直接加到SpringBoot里就没那么好使了,因此查阅 ...
- Java操作Mongodb数据(增删改查聚合查询)
文章目录 一.Java操作MongoDB 二.使用步骤 1.基础配置 2.实体类 3.MongoDB表数据 3.增删改查聚合查询 总结 一.Java操作MongoDB 上一篇文章介绍了,如何在本地使用 ...
- java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解
1. 插入 INSERT sql命令(命令里通过#{}获取对象属性) EG: INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{p ...
最新文章
- [笔记]用VS2010编译运行项目时报“LINK : fatal error LNK1104:...
- 微信小程序-设置启动页面
- Windows Phone 7.1 Sensor プログラミング基礎
- Android开发之http网络请求返回码问题集合。
- oracle数据缓冲区作用,Oracle内存结构(02)--缓冲区
- hessian学习笔记
- LeetCode(#26)————删除排序数组中的重复项
- Cannot create PoolableConnectionFactory。创建连接池异常
- [读书笔记] -《C++ API设计》第6章 C++用法
- [译] iPhone X 网页设计
- Thinkphp if标签不支持3层以上嵌套
- Console-算法[for]-素数
- [程序设计]Java实现解析抖音无水印视频
- 结合Zemax浅谈几何光学和信息光学中的成像,孔径光阑,视场光阑
- python桌面应用_用Python写个Metro风格的桌面程序
- j2me游戏开发之LWJGL(Lightweight Java Game Library)
- 「30天制作操作系统系列」1~4天从汇编到C语言
- 我的一次创业经历--分享给希望创业的大学生们 .
- Centos安装rebar3
- tar -d 选项 比较归档文件与文件系统中的内容