MongodbTemplate的使用,进行crud等复杂操作(较全)(持续更新)

前言

从今天往前数三天,我们小团队参加了一个比赛,开发一个项目,前端是Android和微信小程序,后台数据库用的MongoDB。以前没用过,所以我也是用了一天的时间来学习MongoDB数据库,还好,挺简单的。但时做项目时,不能用原生的MongoDB方法呀,所以一边开发一边学习spring整合的MongodbTemplate。在此也是整理下方法,有不足之处,还望大家指正。

spring data MongoDB的开发文档
https://docs.spring.io/spring-data/mongodb/docs/2.1.5.RELEASE/api/

一、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)

参数解释:

  1. 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");

猜你喜欢

转载自blog.csdn.net/qq_40036754/article/details/88015793