mongodb在SpringBoot中动态参数使用
·
概要
mongodb是一个非关系型数据库
整体架构流程
mongodb依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>3.1.1</version>
</dependency>
连接数据库配置
spring:
data:
mongodb:
uri: mongodb://zyy_0313:123456@192.168.1.6:27017/zyy_0313 ##密码验证
uri: mongodb://192.168.1.6:27017/zyy_0313
动态参数查询数据
public class CategoryValueRepository {
protected final MongoTemplate mongoTemplate;
/**查询排序最大值**/
public Integer getNaxByDatabaseId(String collectionName){
Criteria criteria = new Criteria();
Query query = new Query(criteria);
query.with(Sort.by(Sort.Order.desc(EnvisionType.sort)));
Map<String,String> map =mongoTemplate.findOne(query, Map.class, collectionName);//表名
int sort =0;
if (EmptyUtil.isNotEmpty(map)){
sort = Integer.parseInt(String.valueOf(map.get(EnvisionType.sort)));
}
return sort;
}
/**批量新增**/
public void addCategoryValue(List<Map<String,Object>> maps,String collectionName){
mongoTemplate.insert(maps, collectionName);
}
/**单个新增**/
public void addCategoryValue(Map<String,Object> map,String collectionName){
mongoTemplate.insert(map, collectionName);
}
/**删除某一列**/
public void unset(String name,String collectionName){
Criteria criteria = new Criteria();
Query query = new Query(criteria);
Update update = new Update();
update.unset(name);
mongoTemplate.updateMulti(query,update, collectionName);
}
/**修改某一列的字段**/
public void rename(String oldName,String newName,String collectionName){
Criteria criteria = new Criteria();
Query query = new Query(criteria);
Update update = new Update();
update.rename(oldName, newName);
mongoTemplate.updateMulti(query,update, collectionName);
}
/**根据ID修改**/
public void update(String id,Map<String,Object> map,String collectionName){
Criteria criteria = new Criteria();
criteria.and(EnvisionType.id).is(id);
Query query = new Query(criteria);
Update update = new Update();
map.remove(EnvisionType.id);
map.keySet().forEach(x->{update.set(x,map.get(x));});
mongoTemplate.updateMulti(query,update, collectionName);
}
/**根据条件查询一条数据**/
public Map<String,Object> getByCondition(Map<String,Object> map,String collectionName){
Criteria criteria = new Criteria();
for (String x : map.keySet()) {
if (EmptyUtil.isNotEmpty(map.get(x))){
criteria.and(x).is(map.get(x));
}else {
criteria.and(x).in("",null);
}
}
Query query = new Query(criteria);
query.fields().exclude(EnvisionType._id);
return mongoTemplate.findOne(query,Map.class, collectionName);
}
/**根据条件查询数据集合**/
public List<Map<String,Object>> getByConditions(Map<String,Object> map,String collectionName){
Criteria criteria = new Criteria();
for (String x : map.keySet()) {
if (EmptyUtil.isNotEmpty(map.get(x))){
criteria.and(x).is(map.get(x));
}else {
criteria.and(x).in("",null);
}
}
Query query = new Query(criteria);
query.fields().exclude(EnvisionType._id);
query.with(Sort.by(Sort.Order.asc(EnvisionType.sort)));
return copy(mongoTemplate.find(query,Map.class, collectionName));
}
/**根据ID查询**/
public Map<String,Object> getById(String id,String collectionName){
Criteria criteria = new Criteria();
criteria.and(EnvisionType.id).is(id);
Query query = new Query(criteria);
query.fields().exclude(EnvisionType._id);
return mongoTemplate.findOne(query,Map.class, collectionName);
}
/**根据ID删除**/
public void delete(String id,String collectionName){
Criteria criteria = new Criteria();
criteria.and(EnvisionType.id).is(id);
Query query = new Query(criteria);
mongoTemplate.remove(query, collectionName);
}
/**批量删除**/
public void delete(List<String> ids,String collectionName){
Criteria criteria = new Criteria();
criteria.and(EnvisionType.id).in(ids);
Query query = new Query(criteria);
mongoTemplate.remove(query, collectionName);
}
/**删除文档**/
public void delTable(String collectionName){
mongoTemplate.dropCollection(collectionName);
}
private List<Map<String,Object>> copy(List<Map>maps){
if (EmptyUtil.isNotEmpty(maps)){
List<Map<String,Object>> mapList = new ArrayList<>();
maps.forEach(x-> mapList.add(x));
return mapList;
}
return Collections.emptyList();
}}
小结
https://blog.csdn.net/efew212efe/article/details/124524863
mongodb(springboot操作):https://www.jianshu.com/p/744bee7b6094
更多推荐



所有评论(0)