基础概念
- MongoDB 元素概念
- databases: 数据库;
- collections:表;(collections组成了databases)
- documents:行;(documents组成了collections)
- MongoDB 没有新建数据库的命令,只要进行 insert 或其它操作,MongoDB 就会自动帮你建立数据库和 collection。当查询一个不存在的 collection 时也不会出错,MongoDB 会认为那是一个空的 collection。
- 一个对象被插入到数据库中时,如果它没有 ID,会自动生成一个 "_id" 字段,为 12 字节(24位)16进制数。
- 当然如果插入文档不带 _id,则系统会帮你自动创建一个,如果自己指定了就用自己指定的。
如果你用 Spring Data MongoDB 依赖请注意
- 请先看官网最新支持到哪个版本的依赖:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#new-features
- 查看锚点为:What’s new in Spring Data MongoDB 的内容,比如:What’s new in Spring Data MongoDB 1.10,出现这样一句话:Compatible with MongoDB Server 3.4 and the MongoDB Java Driver 3.4
- 目前 201712 支持 MongoDB 3.4
如果你用 Robomongo 客户端请注意
- 请查看介绍中支持哪个版本:https://robomongo.org/download
- 目前 201712 支持 MongoDB 3.4
Docker 下安装 MongoDB
- 先创建一个宿主机以后用来存放数据的目录:mkdir -p /data/docker/mongo/db
- 赋权:chmod 777 -R /data/docker/mongo/db
- 首次运行镜像:docker run --name cloud-mongo -p 27017:27017 -v /data/docker/mongo/db:/data/db -d mongo:3.4
- 进入容器中 mongo shell 交互界面:docker exec -it cloud-mongo mongo adg_mongo_db
- 创建一个用户:
db.createUser(
{
user: "adguser",
pwd: "adg123456",
roles: [
{ role: "dbAdmin", db: "adg_mongo_db" },
{ role: "readWrite", db: "adg_mongo_db" }
]
}
)
- 然后停掉容器:docker stop cloud-mongo
- 然后删除容器:docker rm cloud-mongo
- 重新运行镜像,这次增加需要授权才能访问的配置:docker run -d -p 27017:27017 -v /data/docker/mongo/db:/data/db --restart always --name cloud-mongo mongo:3.4 --auth
- 重新启动服务:docker restart cloud-mongo
- 导出:docker exec -it cloud-mongo mongoexport -h 127.0.0.1 -u 用户名 -p 密码 -d 库名 -c 集合名 -o /data/db/mongodb.json --type json
- 导入:docker exec -it cloud-mongo mongoimport -h 127.0.0.1 -u 用户名 -p 密码 -d 库名 -c 集合名 --file /data/db/mongodb.json --type json
安装环境
- CentOS 6
MongoDB 安装
- 关闭 SELinux
- 编辑配置文件:vim /etc/selinux/config
- 把 SELINUX=enforcing 改为 SELINUX=disabled
- MongoDB 安装
- 官网:https://www.mongodb.com
- 官网文档: