初试芒果数据库mongodb。

最近在学习express+mongodb建站,所以简单学习一下mongodb。

mongodb简介

momgodb是一套noSQL形式的数据库管理系统。

与传统的以SQL语言语法为主的关系数据库相比,mongodb摒弃了它们的一些在现代应用开发中使用频度不高的特性,换来的却是执行效率的显著提升。再加上mongodb没有使用传统的表的概念,而是用集合,更方便进行扩展。

而mongodb的文档构建是以json的形式构建的,数据库的操作也是使用的对象方法的形式,方便我们前端程序员的学习和使用。

环境搭建

下载

搭建mongoDB环境需要安装mongoDB程序。

可以从mongodb官网下载当前稳定版本或者从github上下载github仓库上下载所需版本的二进制文件进行编译。

安装

安装过程直接按照官方指引解压安装即可。

配置

在软件根目录下创建data文件夹用来保存数据,创建log文件夹来保存运行日志。

在根目录下创建bin目录将相关可执行文件移入。

在根目录下创建mongo.config文件来保存配置信息。

输入以下配置: (具体根据个人配置进行更改)

1
2
3
port=12345 // 指定mongo服务器端口为12345 默认端口为27017
dbpath=D:\mongodb\data // 指定数据存储目录 这里使用了绝对路径 使用相对路径也可
logpath=D:\mongodb\log\mongo.log // 指定日志文件命名 注意这里路径后面是文件

启动服务器

运行bin目录下的mongod文件,为其指定配置文件为我们配置好的文件。

1
mongod -f ../mongo.config // -f --fork指定保护模式

如果没有编写配置文件,也可以这样来启动:

1
mongod --fork --logpath <log_file_path> --dbpath <db_folder_path> port <portNum>

当我们在本地成功启动mongo服务器后,可以在浏览器打开localhost:<portNum>进行查看。

1
2
// 看到服务器返回这个字样 说明服务启动成功
It looks like you are trying to access MongoDB over HTTP on the native driver port.

连接服务器

运行bin目录下的mongo文件,就会连接服务器。

进入mongo的命令行交互界面。

mongodb命令行交互界面

基础命令

mongodb基础的常用的命令。效果见上图。

数据库操作

查看数据库

1
2
// 与mysql相比 这里不需要再末尾输入分号
show dbs

切换数据库

1
use <dbName> // 切换到指定数据库名的数据库 若不存在则创建同名数据库

查看数据库中集合

1
show collections // 查看当前数据库包含的所有集合

删除某个集合

1
db.<collectName>.drop()

集合操作

新建集合/插入记录

1
db.<collectName>.insert({name: 'ntnyq'}) // 向指定集合插入一条记录

查看集合

1
db.<collectName>.find() // 查看指定集合 无参数则返回集合中的所有记录
  • 可以传入对象,返回符合条件的所有集合,如{name: ‘ls’},返回所有name为ls的记录。
  • 可以追加方法,实现别的功能比如skip, limit, sort等等。

mongodb会自动为存入的记录追加_id属性,作为一个唯一的值来标识一条记录。不过我们也可以手动指定一个_id,前提是不与集合中已有的_id冲突,否则插入失败,且会报错。

修改集合

1
db.<collecName>.update({name: 'ntnyq'}, {name: 'lssham'}) // 指定更新符合条件的记录
  • 这里会筛选,并且更新第一条记录,而且是采用的替换更新的方式。也就是用新的记录完全覆盖原先的记录。
  • 如果我们需求增量更新,那么我们讲第二个参数指定为{$set: {name: ‘lssham’}}
  • 如果我们需要一次修改多条符合要求的数据,可以追加参数false, true

## 踩坑记录

记录使用时候踩到的坑。

解决办法不一定适合每个人,不过可以尝试一下。

客户端连接5秒断开

可以通过运行mongod.exe正常开启server端,但是运行mongo.exe打开客户端连接服务器时候就会报下面的错误,无法正常进入MongoDB的命令行交互界面。

1
# failed to connect to 127.0.0.1:27017 after 5000ms milliseconds, giving up.

解决办法:关闭Windows Defende防火墙,或者设置Mongo服务到防火墙白名单。

有钱,任性!!!