一、MongoDB 简介
- mongodb 属于非关系型数据库(NO SQL)。
- MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
- 它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
二、MongoDB 下载、安装
点击下载
https://www.mongodb.com/download-center/community?jmp=docs
下载完之后即可安装,顺序执行。
三、MongoDB 配置
1.配置环境变量
- 找到安装后的目录,一直到bin目录,我的是 D:\installSoftware\mongodb\bin。
- 我的电脑 》右键 》属性 》高级系统设置 》环境变量。
- 在系统变量中,把 1 中的路径放在 path 变量中,即可
- 通过 cmd 打开命令行窗口,输入命令测试
mongod
-
出现此情况,需要在 c盘根目录下,创建 data 文件夹,并在里面创建 db 文件夹和 log 文件夹。(默认的路径) -
按默认的创建完文件夹后,再次输入 命令 mongod
最下边没有退出,即算 mongodb数据库服务器 运行成功。 -
连接数据库,
在第六步的前提下,在打开一个cmd窗口,输入 mongo 连接mongodb ,出现 > 即可,如下图
这样即可使用 mongodb 数据库啦! -
不想使用默认的数据库存储地址。修改数据库路径
- 打开cmd命令行窗口
- 输入 mongod 启动mongodb服务器
- 32位注意:
启动服务器时,需要输入如下内容
mongod --storageEngine=mmapv1 : 第一次这样启动,往后只输入 mongod即可
- mongod --dbpath 数据库路径 --port 端口号 : 修改数据库路径和端口号
四、深度学习 MongoDB
1.数据库
- 数据库的服务器
服务器用来保存数据
mongod命令 用来启动服务器 - 数据库的客户端
客户端用来操作服务器,对数据进行增删改查的操作
mongo命令 用来启动客户端
2.将MongoDB设置为系统服务,可以自动在后台启动,不需要每次都手动启动
-
在c盘根目录创建data
- 在data下创建db和log文件夹 -
创建配置文件
在目录 C:\Program Files\MongoDB\Server\3.2 下添加一个配置文件
mongod.cfg : 里面的内容,从官网配置文件去找 -
以管理员的身份打开命令行窗口
-
执行如下的命令
sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
sc.exe create MongoDB binPath= "\"mongod的bin目录\mongod.exe\" --service --config=\"mongo的安装目录\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
- 启动mongodb服务
- 如果启动失败,证明上边的操作有误,
在控制台输入 sc delete MongoDB 删除之前配置的服务
然后从第一步再来一次
3.基本概念
- 基本概念
数据库(database)
集合(collection)
文档(document)
在MongoDB中,数据库和集合都不需要手动创建,
当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
五、基本操作
1.基本命令
- 显示当前的所有数据库
show dbs
show databases
- 进入到指定的数据库中
use 数据库名
- db表示的是当前所处的数据库
db
- 显示数据库中所有的集合
show collections
2.数据库的CRUD(增删改查)的操作
1) 向数据库中插入文档
db.< collection >.insert(doc)
//向集合中插入一个文档
//例子:向test数据库中的,stus集合中插入一个新的学生对象
//{name:"孙悟空",age:18,gender:"男"}
//db.stus.insert({name:"孙悟空",age:18,gender:"男"})
db.< collection >.find()
//查询当前集合中的所有的文档