MongoDB是一个基于分布式文件存储的数据库。介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB安装步骤
以管理运行安装程序,默认安装路径如下:
C:\Program Files\MongoDB
配置环境变量,下面是我的安装路径。
C:\Program Files\MongoDB\Server\3.2\bin
在c盘根目录。
3.1、创建一个文件夹 data
3.2、 在data中创建一个文件夹db
启动mongodb服务器。
打开cmd命令行窗口,输入 mongod
注意:32位系统,启动服务器是,需要输入如下内容,只有第一次才用输入,以后启动不用再次输入。
mongod --storageEngine=mmapv1
mongod --dbpath 数据库路径 --port 端口号
连接mongodb
打开一个cmd窗口,输入 mongo 连接mongodb,出现 > 表示连接mongodb成功。
设置开机启动
将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 删除之前配置的服务,然后从第一步再来一次。
基本概念
- 数据库(database)
- 数据库的服务器
- 服务器用来保存数据
- mongod 用来启动服务器
- 数据库的客户端
- 客户端用来操作服务器,对数据进行增删改查的操作
- mongo 用来启动客户端
数据库(database)
集合(collection)
文档(document)
注意:在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合。
?
基础命令
显示当前的所有数据库
show dbs 或者 show databases
进入到指定的数据库中
use 数据库名
当前所处的数据库
db
显示数据库中所有的集合
show collections
数据库的CRUD(增删改查)的操作
db.<collection>.insert(doc) - 向集合中插入一个文档 - 例子:向test数据库中的,stus集合中插入一个新的学生对象 {name:"孙悟空",age:18,gender:"男"} db.stus.insert({name:"孙悟空",age:18,gender:"男"}) 查询当前集合中的所有的文档: db.<collection>.find()
更过数据库详细操作,请参考官方文档
node目录结构
包(package):将多个模块组合为一个完整的功能,就是一个包
包结构: bin:二进制的可执行文件,一般都是一些工具包中才有lib
js:文件 doc:文档 test:测试代码 package.json:包的描述文件
package.json文件说明:
它是一个json格式的文件,在它里面保存了包各种相关的信息
name 包名
version 版本
dependencies 依赖
main 包的主要的文件
bin 运行的代码
npm说明:
npm(Node Package Manager node的包管理器)
通过npm可以对node中的包进行上传、下载、搜索等操作
npm会在安装完node以后,自动安装
npm的常用指令
npm -v 查看npm的版本
npm version 查看所有模块的版本
npm init 初始化项目(创建package.json)
npm i/install 包名 安装指定的包
npm i/install 包名 --save 安装指定的包并添加依赖
npm i/install 包名 -g 全局安装(一般都是一些工具)
npm i/install 安装当前项目所依赖的包
npm s/search 包名 搜索包
npm r/remove 包名 删除一个包
文件系统
Buffer(缓冲区):Buffer和数组的结构的非常类似,Buffer是用来存储二进制数据的。
Buffer的方法:
Buffer.from(字符串): 将一个字符串中内容保存到一个buffer中
buf.toString():将buffer转换为一个字符串
Buffer.alloc(size):创建一个指定大小的buffer对象
Buffer.allocUnsafe(size):创建一个指定大小的buffer对象,可以包含敏感数据
fs模块
在Node通过fs模块来对系统中的文件进行操作,fs模块是node中已经继承好了,不需要在使用npm下载,直接引入即可。
引入fs:
var fs = require("fs");
fs模块中的大部分操作都提供了两种方法,同步方法和异步方法。
同步方法带sync
异步方法没有sync,都需要回调函数
写入文件 ? 1.同步写入 ? 2.异步写入 ? 3.简单写入 ? 4.流式写入
读取文件 ? 1.同步读取 ? 2.异步读取 ? 3.简单读取 ? 4.流式读取
方法
打开文件
fs.open(path, flags[, mode], callback) fs.openSync(path, flags[, mode])
读写文件
fs.write(fd, string[, position[, encoding]], callback) fs.writeSync(fd, string[, position[, encoding]]) fs.read(fd, buffer, offset, length, position, callback) fs.readSync(fd, buffer, offset, length, position)
关闭文件
fs.close(fd,callback) fs.closeSync(fd);
简单文件读取和写入
fs.writeFile(file, data[, options], callback) fs.writeFileSync(file, data[, options]) fs.readFile(path[, options], callback) fs.readFileSync(path[, options])
流式文件读取和写入:
流式读取和写入适用于一些比较大的文件
fs.createWriteStream(path[, options]) fs.createReadStream(path[, options])
更多详细参考资料请参考官方文档。
Comments