mongodb介绍
Mongodb是非关系型数据库,存储Json格式数据 ,数据格式灵活。
在win7系统安装mongodb需要vc++运行库,如果没有则会提示“无法启动此程序,因为计算机中丢失
VCRUNTIME140.dll”。
安装完mongodb之后
启动mongodb
在bin目录的同级下创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)并在logs目录下添加日志文件(mongo.log文件)
创建配置文件mongo.conf,文件内容如下:
#数据库路径
dbpath=d:\MongoDB\Server\3.4\data
#日志输出文件路径
logpath=d:\MongoDB\Server\3.4\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
安装 MongoDB服务
安装完mongodb之后,会自动的在windows的服务中注册一个mongodb服务
如果没有注册可以通过执行bin/mongod.exe,使用–install选项来安装服务,使用–config选项来指定之前创建的配置文件。
cmd进入d:\MongoDB\Server\3.4\bin
执行: mongod.exe ‐‐config “d:\MongoDB\Server\3.4\mongo.conf” ‐‐install
然后就可以在服务中去启动mongodb服务
也可以通过命令启动: net start MongoDB
关闭MongoDB服务: net stop MongoDB
移除MongoDB服务: " d:\MongoDB\Server\3.4\bin\mongod.exe" ‐‐remove
命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功
安装studio3t
studio3t是mongodb优秀的客户端工具。官方地址在https://studio3t.com/
修改字体:
默认Studio3t的字体太小,需要修改字体:
点击菜单:Edit—>Preferences
点击Connect新建一个连接输入连接名称以及数据库所在的ip地址和端口(一般使用默认的27017)即可通过studio3t连接mongodb数据库
mongodb入门
基础概念
在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:
@Document:是Spring Data mongodb提供的注解,用在实体类上,用来指定对应的是哪个表
比如: @Document(collection = “cms_page”) 表示该实体类对应的是cms_page这张表
项目使用spring data mongodb操作mongodb数据库
Spring Data Mongodb提供一套快捷操作mongodb的方法。
在pom.xml中添加依赖:
org.springframework.boot
spring‐boot‐starter‐data‐mongodb
在classpath下配置application.yml
server:
port: 31001
spring:
application:
name: xc‐service‐manage‐cms
data:
mongodb:
uri: mongodb://root:123@localhost:27017
database: xc_cms
创建Dao,继承MongoRepository,并指定实体类型和主键类型。
public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
}
编写测试类
test下的包路径与main下的包路径保持一致。
测试程序使用@SpringBootTest和@RunWith(SpringRunner.class)注解,启动测试类会从main下找springBoot启动类,加载spring容器。
测试代码如下:
@SpringBootTest
@RunWith(SpringRunner.class)
public class CmsPageRepositoryTest {
@Autowired
CmsPageRepository cmsPageRepository;
**//分页测试**
@Test
public void testFindPage() {
int page = 0;//从0开始
int size = 10;//每页记录数
Pageable pageable = PageRequest.of(page,size); //类似于PageHelper分页插件
Page<CmsPage> all =