主要講解MongoTemplate 相關API, 使用springboot + mongoDB環境
1.1 保存,插入文檔數據
下圖中指定保存當前文檔的集合爲col, 如果不指定默認即爲當前Model對象
@RestController
public class ShopController {
@Autowired
MongoTemplate mongoTemplate;
@GetMapping("/save")
public void save() {
ShopDO shop1 = new ShopDO(100L,"菜鳥教程");
ShopDO shop2 = new ShopDO(101L,"有道筆記");
mongoTemplate.save(shop1,"col");
mongoTemplate.save(shop2,"col");
System.out.println("mongoDB插入數據成功,集合爲col,文檔爲:"+mongoTemplate.getCollection("col"));
List<ShopDO> list = mongoTemplate.findAll(ShopDO.class,"col");
System.out.println("mongoDB查詢數據成功,集合爲col,文檔爲:");
for (ShopDO shopDO:list){
System.out.println(shopDO.getId()+"/"+shopDO.getName());
}
}
mongoDB插入數據成功,集合爲col,文檔爲:DBCollection{database=DB{name='springboot-db'}, name='col'}
mongoDB查詢數據成功,集合爲col,文檔爲:
100/菜鳥教程
101/有道筆記
1.2 單條件查詢
Query query = Query.query(Criteria.where("id").is(100L));
List<ShopDO> list2 = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB按條件ID查詢數據成功,集合爲col,文檔爲:");
for (ShopDO shopDO:list2){
System.out.println(shopDO.getId()+"/"+shopDO.getName());
}
mongoDB按條件ID查詢數據成功,集合爲col,文檔爲:
100/菜鳥教程
1.3 複合條件查詢,排序
Criteria criteria = new Criteria();
criteria.orOperator(
Criteria.where("title").is("cainiao"),
Criteria.where("name").is("百易教程"));
Query query = new Query(criteria); //組合查詢放入query
Sort sort = new Sort(new Sort.Order(Sort.Direction.ASC.DESC,"id")); //結果集進行排序
query.with(sort);
List<ShopDO> list2 = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB組合查詢數據成功,集合爲col,文檔爲:");
for (ShopDO shopDO:list2){
System.out.println(shopDO.getId()+"/"+shopDO.getName());
}
mongoDB組合查詢數據成功,集合爲col,文檔爲:
200/百易教程
100/菜鳥教程
1.4 分頁條件查詢
Query query = new Query();
query.skip(1).limit(3);
List<ShopDO> list3 = mongoTemplate.find(query,ShopDO.class,"col");
System.out.println("mongoDB分頁查詢下標爲1開始總共3行數據,集合爲col,文檔爲:");
for (ShopDO shopDO:list3){
System.out.println(shopDO.getId()+"/"+shopDO.getName());
}
mongoDB分頁查詢下標爲1開始總共3行數據,集合爲col,文檔爲:
101/有道筆記
200/百易教程
201/CSDN教程
1.5 更新文檔