mongodbTempalte常用操作方法,增删改查,分页等

一、CRUD之添加
在项目中实现添加时比较简单的:
save()与insert是等价的。

Stud stud = new Stud(1,"fenganchen",18)    //实例化一个实体类
MongodbTemplage.save(stud );

或者

MongodbTemplage.insert(stud);

二、CRUD之删除
删除也是比较简单的,看代码

MongodbTemplage.remove(Query query, Class<?> entityClass)
参数解释:
Query query:传入的查询条件,按此条件进行删除
Class<?> entityClass:所删除的数据的实体类
还可以带上参数
String collectionName : 这是集合的名称


Query的实现:
Query query = new Query(Criteria.where("要查询的属性").is("属性值"));
如果条件多,可这样 and) 和 andOperator()
new Query(Criteria.where(“要查询的属性”).is(“属性值”).and(“要查询的属性”).is(“属性值”))
或者
new Query(Criteria.where(“要查询的属性”).is(“属性值”).andOperator(Criteria.where(“要查询的属性”).is(“属性值”)));

==一个Criteria中只能有一个andOperator,and可以多个,我们查询并列条件时,比较建议使用and方法。 ==

三、CRUD之更改
MongodbTemplage.update(Query var1, Update var2, Class<?> var3)

MongodbTemplage.updateFirst(Query var1, Update var2, Class<?> var3)

zhe两个不同点之处,是updateFirst只修改查到的第一个。
参数解释:
Query var1 :同上
Update var2 : 修改数据,或者说修改属性值
使用方法:

  Update update = new Update();
  update.set("属性","属性值");
Class<?> var3 : 所对应的实体类。

四、CRUD之查询
1.查询所有,无参数

MongodbTemplage.find(Query var1, Class<T> var2, String var3)

Query var1 : 写 new Query();
Class var2 :实体类
String var3 : 集合名称

2.根据字段查询数据
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
Query var1 :

Query query = new Query(Criteria.where("要查询的属性").is("属性值"));


Class var2 :实体类
String var3 : 集合名称

2.根据字段查询 指定的字段
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
参数解释:

Query var1 :把条件写进去,把指定字段写进去
使用 BasicDBObject 类
BasicDBObject fieldsObject = new BasicDBObject();
fieldsObject.put(“指定返回的字段”, 值);
这里的值 可为true,1(显示返回)和false,0(不显示不返回)。
测试代码

//指定返回的字段
BasicDBObject fieldsObject = new BasicDBObject();
fieldsObject.put("answerContent", true);

//查询条件
BasicDBObject dbObject = new BasicDBObject();
dbObject.put("topic_id", topic_id);
Query query = new BasicQuery(dbObject.toJson(), fieldsObject.toJson());

List<Answer> answer = mongoTemplate.find(query, Answer.class, "answer");

分页查询:


public Page<AssetIdentifier> findAllAssetIdentifier(HttpServletRequest request){
    //当前页码 默认给了0
    int page = Integer.parseInt(request.getParameter("page"));
    //页面展示数据条数 默认给了 10
    int count = Integer.parseInt(request.getParameter("count"));
    //筛选条件
    String typeCtg = request.getParameter("type_ctg");
    String type = request.getParameter("type");
    String company = request.getParameter("company");
 
    //排序
    //Sort sort = Sort.by(Sort.Direction.DESC, "_id");
    //Pageable pageable = PageRequest.of(page, count, sort);
    Pageable pageable = PageRequest.of(page, count);
    Query query = new Query();
    //动态拼接查询条件
    if(StringUtils.isNotBlank(typeCtg)){
        query.addCriteria(Criteria.where("type_ctg").is(typeCtg));
    }
    if(StringUtils.isNotBlank(type)){
        query.addCriteria(Criteria.where("type").is(type));
    }
    if(StringUtils.isNotBlank(company)){
        query.addCriteria(Criteria.where("company").is(company));
    }
    //获取总条数
    long count1 = mongoTemplate.count(query,AssetIdentifier.class);
    LOGGER.debug("asset identifier count:"+count1);
    List<AssetIdentifier> identifierList = mongoTemplate.find(query.with(pageable), AssetIdentifier.class);
 
 
    return new PageImpl<AssetIdentifier>(identifierList,pageable,count1);
}
/**
*条件查询
*/
 public List<User> findUserAll(Principal principal)
            throws ValueInvalidException, SystemErrorException {
        ObjectId tenancyId = getNowUserTenancyID(principal);
        Query query = new Query();
        query.addCriteria(Criteria.where("tenancy_id").is(tenancyId));
        return  mongoTemplate.find(query,User.class);
}


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EntyIU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值