node.js零基础详细教程(6):mongodb数据库操作
第六章 建议学习时间4小时 课程共10章
学习方式:详细阅读,并手动实现相关代码
学习目标:此教程将教会大家 安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。
数据库
数据库管理结构,一般分为两种:B/S架构 C/S架构。
B/S架构: Browser/Server,浏览器/服务器模式,即通过浏览器和服务器端的数据库进行交互
C/S架构: Client/Server,客户端/服务器模式,即通过客户端和服务器的数据库进行交互(我们使用的cmd命令行就可以算是一个客户端)
数据库根据数据结构分为:关系型数据库和非关系型数据库
关系型数据库就如一般很规整的表格,可以根据横向纵向去定位某条数据,如下图

一般的数据库都是关系型数据库 ,如 mySQL,oracle
而非关系型数据库是不能通过横向纵向去定位一条数据,它的结构更像是一个数组里放了很多个json数据,如下图

我们即将学习的mongodb就是非关系型数据库
当下比较火的数据库有:oracle、mySQL、SQL Server
相比这些数据库,mongodb有体积小、能方便快捷的操作,很适合中小型项目的快速开发
而且它可以很好的配置node.js使用 (node.js也可以操作其他的数据库,以后有时间会单独给大家介绍 node.js操作 mySQL)
mongodb安装
1.在官网上下载所需的安装软件
本课程软件下载 链接:http://pan.baidu.com/s/1kVPxBJT 密码:uziu
下载地址:https://www.mongodb.com/download-center#community
根据所需下载相应版本的mongodb安装包

双击安装包后,点击运行

进入到mongodb的安装页面,点击Next进行下一步

选择同意后,点击Next进行下一步

在这里不建议改变安装目录,直接点击Complete进行下一步

点击Install进行安装

等待安装的进度条完成

安装的进度条完成之后,会进入完成页面,点击Finish 就完成了mongodb数据库的安装

完成已上为步骤,就安装成功了
2.检测mongodb是否安装成功,并配置启动命令
在mongodb的安装目录的bin目录下,打开cmd命令行,输入命令 ‘ mongod –help ’出现下图现在这安装成功

设置数据和日志的储存位置和配置mongodb服务
(1)设置数据文件和日志文件储存位置
按自己的爱好设置文件的储存位置,本安装文档的储存位置设置在E盘,目录如下
E:\MongoData
├─data #MongoDB数据库中的数据的储存位置
└─log #MongoDB数据库中的日志的储存位置
└─mongodb.log # MongoDB数据库中的日志的储存文件 (创建方式:创建一个txt,把后缀名改为log)
(2)配置mongodb服务
1/设置mongodb的环境变量
计算机>右键>属性>高级系统设置>环境变量>找到系统变量中的path变量
向path变量的结尾处添加mongodb的安装目录下bin目录的地址(如果原来的path路径后面没有分号,需要添加一个英文的分号再添加mongodb的目录)
如果按本文档安装的mongodb安装目录下bin目录为:
C:\Program Files\MongoDB\Server\3.4\bin

设置完成后依次点击确定,就设置好了mongodb的环境变量了
2/安装mongodb服务
第一步:按照设置的储存位置,修改下面的命令
(ps:如果是按本文档设置的储存位置,不用在做更改)
mongod --logpath "E:\MongoData\log\mongodb.log" --logappend --dbpath "E:\MongoData\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
#命令中字段的说明
*** --logpath 指定MongoDB日志文件的存储路径,注意是指定文件不是目录
*** --logappend 使用追加的方式写日志
*** --dbpath 指定数据库数据的存储路径
*** --directoryperdb 每个DB都会新建一个目录
*** --serviceName 指定服务名称
*** --serviceDisplayName 指定服务名称,有多个mongodb服务时执行。
*** --install 指定作为一个Windows服务安装。
第二步:在开始处用管理员身份打开cmd命令行,输入上面第一步修改好的指令回车(ps:一定要以管理员身份运行),(运行完成没有任何错误提示,表示设置成功)

第三步:启动mongodb服务
Net start MongoDB

第四步:关闭mongodb服务
Net stop MongoDB

mongodb操作
管理员身份运行cmd,然后执行 mongo,进入mongodb的命令状态

show dbs 显示当前的数据库,前面两个是自带的,后面两个是我自己创建的(大家第一次使用时只有前面两个数据库)

use 数据名 切换数据库 或 创建新的数据库, 下面我创建了一个名为demo3的数据库

db.createCollection("表名字") 向数据库里面添加表 ,下面 创建了一个表 t1

db 显示当前正在使用的数据库
show tables 显示数据库下的表

再创建一个表 t2

db.表名.drop() 用来从数据库中删除一个表
下图命令删除了 t1表,返回true表示删除成功,再显示表的时候 t1就没有了

db.dropDatabase() 删除当前正在使用的数据库

上图删除了 demo3, 然后显示数据库的时候就没有demo3了
我们重新创建 demo3数据库,然后插入 t1表,然后插入数据
插入数据 db.表名.insert({}); 参数中传入json数据,当插入成功以后,系统会自动给数据添加一个独一无二的 _id
使用 db.表名.find()查看数据

查询的时候可以带参数,传入查询的 json即可。下面我们先添加了两条数据(注意:添加的数据name 分别为 zhangsan1 、 zhangsan2,插入不同值方便后面使用),然后实现了带参数和不带参数的查询,结果不同

修改数据 update({修改的条件},{修改器:{修改内容}},第三个参数,第四个参数)
修改器: $set 修改 $unset删除字段 $inc 当于编程语言中的 “+=”
第三个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
第四个参数 ,默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
下面我们来修改一条数据,修改器使用 $set
运行后下面代码后,我们发现 name为zhangsan的数据中的 age被修改为了50 (原来是25)

删除数据的字段,使用 $unset
下面代码删除了 name为zhangsan 的数据的 age属性 (age后面的属性值任意写,因为是删除,写多少都没有意义,但需要写一个json格式)

+= 某条数据,使用$inc
下面代码将 name 为 zhangsan2的数据的 age上叠加10 ,(原来是25,执行以后变成了 35)

Mongo中支持使用 js代码,包括申明变量、循环等等
下面的循环插入10条数据。(虽然提示 nInserted:1 ,但已经插入了10条数据)

查询就可以看到这10条数据了。

查询json支持高级筛选方式
$lt 小于 <
$gt 大于 >
$gte 大于等于 >=
$lte 小于等于 <=
如:
db.t1.find({age:{$lt:5}}) 就可以查找age小于5的全部数据
db.t1.find({age:{$lt:5,$gt:1}}) 就可以查找age小于5大于1 的全部数据 (多个筛选条件之间使用逗号分隔 )

导入导出
导出:mongoexport可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
导入:
基本的操作就讲这么多,希望大家把上面的命令都写完。
明天我们讲解:node.js操作mongodb,及操作方法的封装
node.js零基础详细教程(6):mongodb数据库操作的更多相关文章
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js零基础详细教程(6):mongodb数据库操作 以及导入导出
第六章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js零基础详细教程(3):npm包管理、git github的使用
第三章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- node.js零基础详细教程(4):node.js事件机制、node异步IO操作
第四章 建议学习时间3小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js零基础详细教程(5):express 、 路由
第五章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- node.js零基础详细教程(1):安装+基础概念
第一章 建议学习时间2小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- nodejs零基础详细教程2:模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
随机推荐
- Python全栈之路-Day33
1 time模块 #!/usr/bin/env python # __Author__: "wanyongzhen" # Date: 2017/4/7 import time # ...
- Spring+SpringMVC+Mybaties整合之配置文件如何配置及内容解释--可直接拷贝使用--不定时更改之2017/4/27
以下配置可直接使用,只需更改包名. 关于内部标签的解释及用法,都以注解形式在代码内部说明.个人原创,转载需注明出处. 1,web.xml.添加jar包后首先需要配置WEB-INF下的web.xml文件 ...
- JS模式--状态模式(状态机)
下面的状态机选择通过Function.prototype.call方法直接把请求委托给某个字面量对象来执行. var light = function () { this.currstate = FS ...
- Linux下安装单机版zookeeper(和dubbo配合验证)和redis(用图形化界面连接验证)
上次写了篇zookeeper的集齐,并且用dubbo admin验证了集群结果.最近又特地装了个虚拟机,专门装各种单机版的,免得跟集群的机器混合了.安装的虚拟机IP为192.168.1.108 1.单 ...
- 今天打补丁出问题了,害得我组长被扣了1k奖金。
今天是第三次给mxdw打补丁和打包,外加公司高管说有一个东西必须要今天之内搞定外放. 我当时问策划为什么这么着急?策划说大佬决定的(这种做事方式真的很不习惯).我等屁民加班加点的搞事情,把功能搞出去了 ...
- 利用Python进行简单的图像识别(验证码)
这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...
- Docker - 容器直连
本文是在原文基础上的实际操作验证记录和细节补充. 默认情况下,容器连接到虚拟网桥docker0提供的虚拟子网中,容器之间通过默认网关(虚拟网桥docker0接口地址)建立连接. 如果不使用虚拟网桥,用 ...
- 在QT中创建文件
最近在做QT东西时遇到在指定路径下创建文件,发现qt中没有直接用的. 主要通过自定义一个createFile()函数来实现,其中需要用到<QFile> <QDir> <Q ...
- Haproxy------在windows下配置负载均衡
配置Haproxy 1.解压Haproxy到d:\haproxy 2.置haproxy.cfg文件 global log 127.0.0.1 local0 maxconn 1500 daemon de ...
- 主机设置ss代理,虚拟机共享代理
代理的原理: 关于代理的具体的书面定义你百度谷歌可以知道.这里,我想简单通过一个例子,说明代理的原理: 假如,你在北京,但你女朋友在广州,你有东西要给你的女朋友,但是正好你这几天公司有事,所以你不能去 ...