Linux宝塔安装MongoDB
- 进入宝塔页面,找到软件商店,搜索mongoDB,点击安装
- 修改Mongo DB配置文件,将ip换成0.0.0.0,之后重启mongo DB
- 配置php,在安装扩展中安装mongo db,重启php。
- 使用工具测试连接
SpringBoot整合MongoDB
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
- 编写配置文件
data:
mongodb:
host: xxx.xx.xxx.xx
database: 数据库
port: 27017
- 编写实体类
@Document(collection = "article")
@Data
public class Article implements Serializable {
@Id
private String id;
private String articleId;
private String content;
private Integer likeNum;
@Indexed
private String userName;
private Date createTime;
private Date updateTime;
}
- Controller层的增删改查
@RestController
@RequestMapping("/idol/article")
@Api("发布文章")
public class ArticleController {
@Resource
private ArticleService articleService;
@PostMapping("/getAll")
@ApiOperation("查询全部")
public Result getList(){
List<Article> list = articleService.getList();
return Result.success(list);
}
@PostMapping("/issueArticle")
@ApiOperation("发布文章、动态")
public Result issueArticle(@RequestBody Article article){
Result res = articleService.issueArticle(article);
return Result.success(res);
}
@GetMapping("/getArticleById")
@ApiOperation("根据id查询")
public Result getArticleById(@RequestParam String id){
Article article = articleService.getArticleById(id);
return Result.success(article);
}
@PostMapping("/getArticleByParam")
@ApiOperation("根据条件查询")
public Result getArticleByParam(@RequestBody ArticleParam articleParam){
List<Article> articleList = articleService.getArticleByParam(articleParam);
return Result.success(articleList);
}
@GetMapping("/deleteArticle")
public Result deleteArticle(@RequestParam String id){
Result result = articleService.deleteArticle(id);
return Result.success(result);
}
}
- service接口
public interface ArticleService {
List<Article> getList();
Result issueArticle(Article article);
Article getArticleById(String id);
List<Article> getArticleByParam(ArticleParam articleParam);
Result deleteArticle(String id);
}
- serviceImpl,这里我用了两个方式,一个是直接继承MongoRepository,一个是使用MongoTemplate
@Service
@Slf4j
public class ArticleServiceImpl implements ArticleService {
@Resource
private ArticleMapper articleMapper;
@Resource
private MongoTemplate mongoTemplate;
@Override
public List<Article> getList() {
List<Article> all = articleMapper.findAll();
return all;
}
@Override
public Result issueArticle(Article article) {
article.setCreateTime(new Date());
article.setUpdateTime(new Date());
Article insert = articleMapper.insert(article);
return Result.success(insert);
}
@Override
public Article getArticleById(String id) {
Article article = mongoTemplate.findById(id, Article.class);
return article;
}
@Override
public List<Article> getArticleByParam(ArticleParam articleParam) {
Query query = new Query();
if(!StringUtils.isEmpty(articleParam.getKey())){
query.addCriteria(Criteria.where("content").regex(articleParam.getKey()));
}
if (!StringUtils.isEmpty(articleParam.getUserName())){
query.addCriteria(Criteria.where("userName").is(articleParam.getUserName()));
}
List<Article> articleList = mongoTemplate.find(query, Article.class);
return articleList;
}
@Override
public Result deleteArticle(String id) {
DeleteResult result = mongoTemplate.remove(new Query(Criteria.where("_id").is(id)),Article.class,"article");
return Result.success(result);
}
}
- 自定义mapper
@Mapper
public interface ArticleMapper extends MongoRepository<Article,String> {
}
结尾
这是第一次使用MongoDB,从搭建环境到写个小Demo吧,大佬和新手小白有建议或者问题,评论区理性发言。