本文开启我的MongoDB学习之路,先简单介绍下我的初体验。
零、简介
MongoDB是一种非关系型数据库(NoSQL),与之相对应的是关系型数据库,
顺便一提SQL:结构化查询语言、关系数据库全都同SQL来操作。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象,其字段值可以包含其他文档、数组及文档数组。在Mongodb中,对于插入的格式并没有要求,字段类型可以随意变动。
一、安装MongoDB
1.软件下载
2.安装
3.配置环境变量。
找到 MongoDB 启动目录,如 C:\Program Files\MongoDB\Server\x.x\bin
将该路径添加到环境变量 path 中。
二、启动服务
1.在C盘根目录创建一个文件夹 data ,在 data 中创建一个文件夹 db(其实不一定,先照着做,后面细说)。
2.打开cmd命令行窗口,输入 mongod 启动mongodb服务器(32位系统注意:初次启动服务器时,需要输入如下内容: mongod --storageEngine=mmapv1
)。
2.1.mongod --dbpath 数据库路径 --port 端口号(如此操作可更改数据库目录,即上述所说的C:\data\db ,同时可以修改监听端口号:不建议修改、四位数、不超过65535)。
3.再打开一个cmd窗口,输入 mongo 连接 MongoDB ,出现命令提示符 > 即表示服务启动成功且连接到数据库。(注意:上一个 cmd 窗口不可关闭)
3.1.可尝试从浏览器端访问 http://localhost:27017/ 可以看到提示内容 “It looks like you are trying to access MongoDB over HTTP on the native driver port.” 亦可证实操作顺利(27017即上述所说不建议修改的监听端口号)。
4.这边解释下为什么要开两个 cmd ,因为数据库(database)包含:
a.数据库的服务器
服务器用来保存数据
命令 mongod 用来启动服务器
b.数据库的客户端
客户端用来操作服务器,对数据进行增删改查的操作
命令 mongo 用来启动客户端
三、设置服务自动启动
最新版本的MongoDB已经在安装的时候配置好了, 文件路径为 <install directory>\bin\mongod.cfg所以可忽略本步骤!!!
将 MongoDB 设置为系统服务,可以自动在后台启动,无需每次都手动启动。
1.在C盘根目录创建data,在data下创建db和log文件夹。
2.创建配置文件,在软件安装目录,如 C:\Program Files\MongoDB\Server\x.x
下添加一个配置文件 mongod.cfg 。(具体可以参照官方文档的指示)
3.以管理员的身份打开命令行窗口。
4.执行如下的命令:
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"
5.启动mongodb服务。
6.如果启动失败,证明上边的操作有误。在控制台输入 sc delete MongoDB
删除之前配置的服务,然后从第一步再来一次。
四、以下是一些关于MongoDB的基本概念和指令:
1.基本概念
a.数据库(database)
b.集合(collection)
c.文档(document)
在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合。
2.基本指令
指令 | 描述 |
---|---|
show dbs | 显示当前的所有数据库(简) |
show databases | 显示当前的所有数据库 |
use 数据库名 | 进入到指定的数据库中 |
db | db表示的是当前所处的数据库 |
show collections | 显示数据库中所有的集合 |
3.数据库的CRUD(增删改查)的操作
a.向数据库中插入文档
db.<collection>.insert(doc) - 向集合中插入一个文档
eg:向test数据库中的,stus集合中插入一个新的学生对象: {name:“张三”,age:18,gender:“男”}
db.stus.insert({name:“张三”,age:18,gender:“男”})
db..find() - 查询当前集合中的所有的文档