一、配置文件
pom文件中加入依赖即可在java代码中使用
<dependency>
<groupId>com.inphase.mjai</groupId>
<artifactId>mjai-common-ctgcache</artifactId>
</dependency>
在yml文件中加入连接数据的配置文件
spring:
data:
mongodb:
uri: mongodb:连接路径
database: 数据库名
二、启动项目配置
在启动类上,加入两个注解,通过springBoot启动起来的时候就可以加载MongoDB
@ComponentScan(basePackages = {"包路径"})
@SpringBootApplication(scanBasePackages = "包路径", exclude = {DruidDataSourceAutoConfigure.class})
三、项目中的应用
在代码中创建集合
先判断数据库中是否存在该集合,不存在则可以按照自己的命名规则来创建集合
判断名字为tableName的集合是否存在,存在则返回true。
mongoTemplate.collectionExists(tableName)
如果不存在则创建集合
mongoTemplate.createCollection(tableName);
往集合中放入数据
先获取集合对象
MongoCollection<Document> table = mongoTemplate.getCollection(tableName);
再组装参数,两种组装方式
1.麻烦的组装方式但简单
Document document = new Document();
document.put("字段1","值1");
document.put("字段2","值2");
2.简单的组装方式,用映射的方式将对象中的所有值都放入document中,其中faceSec就为需要存储的对象。
Document document = new Document();
Field[] fields = faceSec.getClass().getDeclaredFields();
for(Field field : fields){
field.setAccessible(true);
document.put(field.getName(), field.get(faceSec));
}
将数据放入集合中去
table.insertOne(doc);
分页查询、条件查询并按照规则排序
1.条件查询
先创建一个query,并且加入一个条件
Query query = new Query();
query.addCriteria(Criteria.where("deviceId").is(params.get("deviceId")));
有了这个query就可以按照这个条件进行条件查询。.find返回的是个List<对象类>。.findOne返回的是查询时传入的对象类,且只返回一个。
long total = mongoTemplate.count(query, tableName);//统计数量
mongoTemplate.find(query, 对象类.class, tableName);
分页查询并俺规则排序
在query中放入分页条件
query.skip(pageIndex * pageSize).limit(pageSize);
再加入排序条件,通过createTime倒序排
query.with(Sort.by(
Sort.Order.desc("createTime")
));
到此就进行简单的存数据与查数据。
其中的删除与修改,就和查询与写入差不多,自己去试试就可以啦。
四、在数据库中的增删改查使用
增
db.getCollection("表名").insert(
{字段1 : "值1",字段2 : "值2"}
);
删
db.getCollection("表名")。remove(
{条件1:"值1"}
);
改
db.getCollection("表名").update(
{条件字段1:"值1"},
{字段1:"值1",字段2:"值2"}
);
使用这样修改的时候发现如果不全部传值,则会将没传值的数据置为空值,这点和mysql不一样。
如果有哪位兄弟知道为啥欢迎评论到下面一起学习。
查
db.getCollection("表名").find(
{"条件1":"值1","条件2":"值2"}
);
创建集合
db.createCollection("表名");
删除集合
db.表名.drop();