欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 项目里MongodbTemplate用法

项目里MongodbTemplate用法

2025/12/14 20:36:45 来源:https://blog.csdn.net/qq_42516605/article/details/143357402  浏览:    关键词:项目里MongodbTemplate用法

1. 先引入依赖(这里以gradle项目为例)

implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'

2. 在对应应类上获取MongoTemplate

 private final MongoTemplate mongoTemplate;

3. 下面就是一些常用功能实现

注: 下面的XXX是你的表名

3.1 数据保存
实现1 : 基本数据插入方式1:

Map<String, Object> map = new HashMap();
map.put("name","test");
Document document = new Document();
document.putAll(map);
Document insert = mongoTemplate.insert(document, XXX);
// 如果需要获取保存后的数据的主键id,则进行下面的操作
String childId = insert.get(MongoKeyConstants.PRIMARY_KEY).toString();

基本数据插入方式2:

Document doc = new Document();
doc.put("name", "狮子狗");
mongoTemplate.insert(doc, licenseAllocation);

3.2 数据查询
查询一条:
举个栗子: 查询用户名为光头强的数据

Query query = new Query();
query.addCriteria(Criteria.where("username").is("光头强"));
Document doc = mongoTemplate.findOne(query, Document.class, XXX);

查询多条:
注: 查询后的主键id返回的是一个object对象,所以需要处理一下

Query query = new Query();
query.addCriteria(Criteria.where("username").is("光头强"));
List<Document> dataList = mongoTemplate.find(query, Document.class, XXX);
// Constants.PRIMARY_KEY 值为  "_id"
dataList.forEach(document -> {document.put(MongoKeyConstants.PRIMARY_KEY, t.get(Constants.PRIMARY_KEY).toString());
});

查询条件3: 根据cinInfoId,开始时间和结束时间,以及xx名称模糊查询,进行筛选
注: 1. Constants 里的都是表里的字段
2. 这里的开始时间和结束时间都是可以单选的,所以需要分开判断

Query query = new Query();query.addCriteria(Criteria.where(MongoKeyConstants.CI_INFO_ID).is(cinInfoId));if (searchForm.getUpdateBy() != null) {query.addCriteria(Criteria.where(Constants.UPDATED_BY).is(searchForm.getUpdateBy()));}Date updateStart = searchForm.getUpdateStart();Date updateEnd = searchForm.getUpdateEnd();if (Objects.nonNull(updateStart) && Objects.nonNull(updateEnd)) {query.addCriteria(Criteria.where(Constants.UPDATED_AT).gte(updateStart).lte(updateEnd));} else {if (updateStart != null) {query.addCriteria(Criteria.where(Constants.UPDATED_AT).gte(updateStart));}if (updateEnd != null) {query.addCriteria(Criteria.where(Constants.UPDATED_AT).lte(updateEnd));}}//根据字段名模糊查询String updateFieldName = searchForm.getUpdateFieldName();if (StringUtils.isNotBlank(updateFieldName)) {query.addCriteria(Criteria.where(Constants.CHANGE_CONTENT).elemMatch(Criteria.where("fieldName").is(updateFieldName)));}//查询List<Document> documents = mongoTemplate.find(query, Document.class, XXX);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词