MongoDB了解及学习(1)
很久没有写博客了,果然,懒惰是人类唯一的敌人。不知道为什么,这一段时间的自己都是比较迷茫的,可能也和这段时间工作有点忙有原因,但是这也不是一个好的借口。总之,这一段的博客自己后面还是慢慢补上自己欠下的债吧,反正自己也有记录。
在这一段时间中的开发使用到了MongoDB,因为业务的关系,要做和报表有关的业务逻辑。所以使用到了MongoDB。最开始我是有点不明白的,因为使用MySQL习惯了,所以认为MongoDB和MySQL没有什么太大的区别,不就是存储的对象的形式不一样?这也是了解的太少,后面慢慢的了解,知道了一些MongoDB的优点。下面就记录一下自己学习到的一些知识。
安装MongoDB很简单,下面就简单的介绍一下mac安装的步骤。下载安装包,解压,移动到指定的目录下就完成了简单的安装,在安装目录下使用命令访问就可以了。
后面的对于我来说就有点麻烦了,就是配置全局路径。因为mac也是刚使用不久,所以对于一些基础的命令还是不清楚。所以这一步都是看网上的教程。最后也是完成了。下面就说说具体干了什么。
1.配置全局路径,找到bash_profile文件,添加MongoDB_HOME,并且修改PATH路径,最后使修改成效。这样就完成了第一步。
2.在MongoDB路径下增加data和log目录,修改mongoDB的数据库路径和log路径。这样就完成了mongoDB的安装。在终端敲击mongo就会启动mongoDB。
3.启动后,可以配置mongo的用户名和密码,这里说一下配置的用户,一个admin用于增加用户和删除用户,一个root用户最高权限,一个name用户用户连接特定的数据库(name可以随意起)。
安装也是参考了别人的安装,就是下面的这篇博客。https://www.cnblogs.com/quickcodes/p/5390482.html
完成了安装,下面就开始简单的使用,因为是初步的使用,所以就是简单的存取。
首先是导入依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
在application.yml文件中配置MongoDB的信息
data:
mongodb:
uri: mongodb://admin:admin@localhost:27017/test
配置uri的时候发现了一个问题,最开始使用的如下的配置格式。
data:
mongodb:
host: 192.168.22.208
port: 27017
database: wpew
username: wpew
password: wpewUser
发现一直无法使用用户名和密码登录,去掉用户名密码可以。最开始以为mongo中用户名和密码错误,但是后来用该用户名和密码直接登录发现可以登录。后来改为上面的格式就可以了,目前不知道原因,可能是和依赖的版本有关,大家知道原因的也可以在评论中告知一下,非常感谢。
下面就是代码中关于mongo的操作。增删改查基本的操作,后面更加复杂的聚合查询暂时还没有用到,后面也会慢慢补上。
在具体的操作前需要先注入一个mongoTemplate对象,然后在完成具体的数据库的操作。
操作都是很简单的,大部分都是一行代码,比如保存一个对象:
mongoTemplate.insert(userDO);
根据指定字段查询对象:
Query query = new Query(Criteria.where("userName").is(userName)); UserDO userDO = mongoTemplate.findOne(query, UserDO.class);
这些都是一些基础的东西,具体深入的东西目前还没有接触到,后面还是要接着学习。
说说具体遇到的问题吧,依赖的版本导致自己试了很久,后来导入正确的依赖就没有什么大问题了,大家写项目的时候一定要注意各个组件的依赖之间是否互斥。再后面就是配置的问题,和上面的一样,因为yml里面的格式导致了自己的代码一直报错,也是很郁闷。
代码放在了自己的GitHub上面。地址是https://github.com/qq1162210866/SpringBootTrain.git
就这样吧,结束。