MongoDB 相关
1.安装 MongoDB
2.安装 robo3t(可视化工具)
3.引入 jar 包
<!-- mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
4.配置文件添加数据源
spring.data.mongodb.uri=mongodb://192.168.50.65:27017/
spring.data.mongodb.database=smj
5.使用 MongoTemplate 进行增删改查
/**
* 单条插入
* @param productDetail
*/
public void saveProductDetail(JfProductDetail productDetail, String connectionName) {
mongoTemplate.save(productDetail,connectionName);
}
/**
* 插入一个list
* @param productDetailList
*/
public void saveProductDetails(List<JfProductDetail> productDetailList, String connectionName){
mongoTemplate.insert(productDetailList,connectionName);
}
/**
* 获取整个集合
* @return
*/
public List<JfProductDetail> getProductDetails(String connectionName) {
return mongoTemplate.findAll(JfProductDetail.class,connectionName);
}
/**
* 获取单个对象
* @param productNo
* @return
*/
public JfProductDetail getProductDetailByNo(Long productNo, String connectionName) {
Query query = new Query();
query.addCriteria(Criteria.where("productNo").is(productNo));
// query.with(new Sort(Direction.DESC,"phone")); //按手机号码倒序
// Criteria criteria = new Criteria();
// criteria.and("name").is("秦岚");
// criteria.and("phone").is("12222222222");
// Query query = new Query(criteria);
JfProductDetail productDetail = mongoTemplate.findOne(query,JfProductDetail.class,connectionName);
return productDetail;
}
/**
* 更新
* @return
*/
public JfProductDetail update(JfProductDetail productDetail, String connectionName) {
Query query = new Query();
query.addCriteria(Criteria.where("productNo").is(productDetail.getProductNo())); //_id区分引号 "1"和1
Update update = Update.update("content", productDetail.getContent()).set("updateDate",new Date());
// WriteResult upsert = mongoTemplate.updateMulti(query, update, "userList"); //查询到的全部更新
// WriteResult upsert = mongoTemplate.updateFirst(query, update, "userList"); //查询更新第一条
UpdateResult updateResult = mongoTemplate.upsert(query, update, connectionName);//有则更新,没有则新增
return productDetail;
}
/**
* 批量更新
* @return
*/
public void updateByList(List<JfProductDetail> productDetails, String connectionName) throws Exception {
for(JfProductDetail productDetail : productDetails) {
Query query = new Query();
query.addCriteria(Criteria.where("productNo").is(productDetail.getProductNo())); //_id区分引号 "1"和1
Update update = Update.update("content", productDetail.getContent()).set("updateDate",new Date());
UpdateResult updateResult = mongoTemplate.upsert(query, update, connectionName);//有则更新,没有则新增
}
}
/**
* 删除内嵌文档中数据
* @return
*/
public JfProductDetail delete(JfProductDetail productDetail, String connectionName) {
//查询_id为11并且其中userList文档的_id为1的
Query query = Query.query(Criteria.where("productNo").is(productDetail.getProductNo()));
mongoTemplate.remove(query,connectionName);
return productDetail;
}