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;
}

posted @ 2019-10-31 15:48  smj1990  阅读(126)  评论(0编辑  收藏  举报