之前有個項目,用的是Springboot框架,對接的數據庫是mongodb,當時花了一些時間去做這個配置MongoDB的連接,現在把這個過程記錄下來,以免遺忘。
一、在pom中添加依賴。
<!-- 增加mongodb支持 --> |
二、配置數據源
在項目中,使用的配置文件是yaml格式的,所以配置信息如下:
spring: |
如果使用的是properties格式的話,配置信息則是;
spring.data.mongodb.uri= mongodb://地址 |
三、在實體中添加注解
在實體添加@Document注解,collection= "對應的表名"。
在屬性上添加@Filed注解,值為對應的字段名。
@Getter |
四、在業務層使用MongoDb的方法:
@Service } |
五、MongoTemplate常使用的方法
1.插入
|
2.刪除
|
3. 修改
Query query=new Query(Criteria.where("_id").is(id)); Update update = Update.update("要更新的字段", "更新的值"); mongoTemplate.updateFirst(query, update, Object.class); |
4.查詢
1.查找所有 mongoTemplate.findAll(Object.class); 2.條件查詢(具體某個字段的值) Query query=new Query(Criteria.where("字段1").is("值1")); mongoTemplate.find(query, Object.class); 3.條件查詢(大於小於) Criteria criteria = Criteria.where("字段").gte(某個值).lte(某個值); Query query = new Query(criteria); mongoTemplate.find(query, Object.class); 4.模糊查詢 Pattern pattern = Pattern.compile("^.*" + searchKey + ".*$");//這里時使用的是正則匹配,searchKey是關鍵字,接口傳參,也可以自己定義。 Criteria criteria = Criteria.where("_id").regex(pattern); mongoTemplate.find(query, Object.class); 5.分頁查詢 Query query = new Query(); query.skip("跳過的數據條數").limit("一頁的數據條數"); mongoTemplate.find(query, Object.class); 6.聚合查詢 Aggregation aggregation1 = Aggregation.newAggregation(Aggregation.group("sex").count().as("peopleCount"));//這里的聚合條件由自己定義 AggregationResults<BasicDBObject> outputTypeCount1 = mongoTemplate.aggregate(aggregation1, "User", BasicDBObject.class);//取出的結果需要自行進行處理,比如可以用getMappedResults來轉換 |
六、增強配置
如果我們在項目中需要管理MongoDB的最大連接時長、socket保持活躍、最大等待時長等,那么我們在pom文件中需要引入一個增強管理包。
<!-- 增加mongoplus支持 --> |
同時在項目啟動類SpringBootMainApplication上添加一個注解@EnableMongoPlus。
我們就可以在配置文件中添加這些配置了。
spring: |