1.项目引入pom依赖

<!-- mongodb  -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.配置连接

#mongodb配置
data:
mongodb:
host: 192.168.0.15
port: 27017
database: test
username: root
password: admindev123$%^

3.简单使用

新建一个实体类

MongodbMessage.class
package org.jeecg.common.mongodb;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
* @Description:消息记录
* @author:hanby
* @date:Created in 2021/08/25
* @version V1.0
*/
@Data
@Document(collection = "MongodbMessage")//对应数据库的表名
public class MongodbMessage {
/**
* 主键
*/
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**
* 发送人
*/
@ApiModelProperty(value = "发送人")
private java.lang.String from;
/**
* 接收人
*/
@ApiModelProperty(value = "接收人")
private java.lang.String to;
/**
* 信息详情
*/
@ApiModelProperty(value = "信息详情")
private java.lang.String message;
/**
* 发送时间
*/
@ApiModelProperty(value = "发送时间")
private Date datetime;
/**
* 组Id
*/
@ApiModelProperty(value = "组Id")
private java.lang.String uid;

}

/**
* 直接注入mongoTemplate即可使用
*/
@Resource
private MongoTemplate mongoTemplate;

JeecgTestMongodbController.class
package org.jeecg.modules.cloud.mongodb;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.mongodb.MongodbMessage;
import org.jetbrains.annotations.NotNull;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;

@RestController
@RequestMapping("/sys/mongodbtest")
@Api(tags = "【微服务】单元测试")
@Repository("deviceStatusRepository")
public class JeecgTestMongodbController {

/**
* 直接注入mongoTemplate即可使用
*/
@Resource
private MongoTemplate mongoTemplate;

@PostMapping("saveMongodb")
@ApiOperation(value = "测试saveMongodb", notes = "测试saveMongodb")
public Result<String> saveMongodb() {

MongodbMessage message = new MongodbMessage();
message.setFrom("1");
message.setTo("2");
message.setMessage("第一个消息");
message.setDatetime(new Date());
message.setUid("111");
//存储操作
mongoTemplate.save(message);

//存储多个
// ArrayList<MongodbMessage> messageList = new ArrayList<>();
//
// MongodbMessage message1 = new MongodbMessage();
// message1.setFrom("1");
// message1.setTo("2");
// message1.setMessage("第一个消息");
// message1.setDatetime(new Date());
// message1.setUid("111");
// messageList.add(message1);
//
// MongodbMessage message2 = new MongodbMessage();
// message2.setFrom("1");
// message2.setTo("2");
// message2.setMessage("第二个消息");
// message2.setDatetime(new Date());
// message2.setUid("111");
// messageList.add(message2);

// mongoTemplate.save(messageList);

return Result.OK("mongodb保存成功");
}

@PostMapping("deleteMongodb")
@ApiOperation(value = "测试deleteMongodb", notes = "测试deleteMongodb")
public Result<String> deleteMongodb(@RequestParam(name = "from", required = true) String from) {

//mongoTemplate.remove("1");
//mongoTemplate.remove("1","MongodbMessage");
//构建查询
Query query = new Query();
//拼装删除数据
query.addCriteria(Criteria.where("from").is(from));
//mongoTemplate.remove(query, "记录表");//删除所有
mongoTemplate.remove(query, MongodbMessage.class);

return Result.OK("mongodb删除成功");
}

@PostMapping("editMongodb")
@ApiOperation(value = "测试editMongodb", notes = "测试editMongodb")
public Result<String> editMongodb(@RequestParam(name = "from", required = true) String from, @RequestParam(name = "message", required = true) String message) {

//拼装修改数据
//Query query = new Query(Criteria.where("from").is(from));
Update update = new Update();
update.set("message", message);
//mongoTemplate.updateFirst(query, update, MongodbMessage.class);
//批量修改
Query query = new Query(Criteria.where("from").is(from));
mongoTemplate.updateMulti(query, update, MongodbMessage.class);

return Result.OK("mongodb修改成功");
}

@PostMapping("queryMongodb")
@ApiOperation(value = "测试queryMongodb", notes = "测试queryMongodb")
public Result<?> 测试queryMongodb(@RequestParam(name = "from", required = true) String from, @RequestParam(name = "to", required = true) String to, @RequestParam(name = "page", required = true) int page, @RequestParam(name = "size", required = true) int size) {
//单条
//String id = "1";
//Query query = new Query(Criteria.where("id").is(id));//可累加条件 is是条件查,regex是模糊查
//Message message = mongoTemplate.findOne(query,Message.class);
//多条 比如查询来自from发给to的记录

/**
* mongoDB大于小于符号对应:
* > 大于 $gt
* < 小于 $lt
* >= 大于等于 $gte
* <= 小于等于 $lte
* 要查询同一个字段多个约束需要用andOperator:
*/

Query query2 = new Query(Criteria.where("from").is(from)
// //可累加条件 用and
.and("to").is(to)
// .andOperator(
// //大于这个时间
// Criteria.where("datetime").gt(new Date()),
// //小于这个时间
// Criteria.where("datetime").lt(new Date())
// )
//
)
//排序
.with(Sort.by(Sort.Order.asc("datetime")))
;
long count = mongoTemplate.count(query2, MongodbMessage.class);
System.out.println(count);
//分页
List<MongodbMessage> messages = mongoTemplate.find(query2.limit(size).skip((page - 1) * size), MongodbMessage.class);

HashMap<String, Object> hashMap = new HashMap<>(2);
hashMap.put("count", count);
hashMap.put("messages", messages);

return Result.OK(hashMap);
}

}

MongoDB学习 - 简单使用的更多相关文章

  1. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  2. MongoDB 学习笔记(一):安装及简单shell操作

    一.说明 1.该系列MongoDB学习笔记的学习环境采用的MongoDB版本为mongodb-win32-i386-2.4.6,操作系统为win7. 二.安装 1.新建两个目录,分别是D:\Insta ...

  3. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  4. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

  5. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  6. MongoDB学习之--增删改查(1)

    本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsonDcument插入即可: 方式1 ...

  7. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  8. MongoDB学习教程(1)

    1.简介: MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB 旨在为WEB应用提供可扩展的高性能数据 ...

  9. MongoDB学习总结(二)

    前言:学习札记! MongoDB学习总结(二) 1.  安装.初识 之前写过一篇MongoDB的快速上手文章,里边详细的讲了如何安装.启动MongoDB,这里就不再累述安装过程,简单介绍一下Mongo ...

随机推荐

  1. 修改页面.JSP

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><%@tag ...

  2. 详解 java 异常

    Throwable 可以用来表示任何可以作为异常抛出的类(注意,是类不是接口),分为两种: Error(注意!error也是可以throw的,但是不建议) 和 Exception. 其中 Error ...

  3. java多线程并发编程中的锁

    synchronized: https://www.cnblogs.com/dolphin0520/p/3923737.html Lock:https://www.cnblogs.com/dolphi ...

  4. Linux中的正则

    目录 一.匹配规则 二.举例 一.匹配规则 * 匹配 0 或多个字符 ? 匹配任意一个字符 [list] 匹配 list 中的任意单一字符 [^list] 匹配 除list 中的任意单一字符以外的字符 ...

  5. 09 - Vue3 UI Framework - Table 组件

    接下来做个自定义的表格组件,即 table 组件 返回阅读列表点击 这里 需求分析 开始之前我们先做一个简单的需求分析 基于原生 table 标签的强语义 允许用户自定义表头.表体 可选是否具有边框 ...

  6. ciscn_2019_ne_5

    首先checksec和查看多少位的程序 可以看到是32位的程序,放入ida中 进入getflag 可以看到strcpy存在栈溢出,所以大体思路就是输入密码进入选择1造成溢出然后进入选择4获取shell ...

  7. 逻辑判断(Power Query 之 M 语言)

    逻辑真:true 逻辑假:false 与函数:and true and true,结果为TRUE true and false,结果为FALSE false and false,结果为FALSE 或函 ...

  8. 初识requests

    Make a Request 一开始要导入 Requests 模块: >>> import requests 然后,尝试获取某个网页.本例子中,我们来获取 Github 的公共时间线 ...

  9. win10修改Docker Desktop Installer的默认安装目录

    Docker Desktop Installer软件默认安装会装在C:\Program Files\Docker的目录下,默认是不能修改的,但是我们可以通过设置软链接的方式把安装默认弄到其他盘 我们先 ...

  10. 【九度OJ】题目1015:还是A+B 解题报告

    [九度OJ]题目1015:还是A+B 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1015 题目描述: 读入两个小于10000的正整 ...