node.js零基础详细教程:mongodb数据库操作

成都苏天天      2022-02-11     315

关键词:

第六章 建议学习时间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条数据。(虽然提示 nInserted1 ,但已经插入了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格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

  、语法:
        mongoexport -d dbname -c collectionname -o file --type json/csv -f field
        参数说明:
            -d :数据库名
            -c :collection名
            -o :输出的文件名
            --type : 输出的格式,默认为json
            -f :输出的字段,如果-type为csv,则需要加上-f "字段名"
    、示例:
        mongoexport -d mongotest -c users -o D:/users.json --type json -f  "_id,user_id,user_name,age,status"

 导入:

 、语法:
        mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
        参数说明:
            -d :数据库名
            -c :collection名
            --type :导入的格式默认json
            -f :导入的字段名
            --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
            --file :要导入的文件
 
   、示例:
        mongoimport -d mongotest -c users --file D:/users.json --type json

 

基本的操作就讲这么多,希望大家把上面的命令都写完。

 

明天我们讲解:node.js操作mongodb,及操作方法的封装

 

node.js零基础详细教程:express路由

...此教程将教会大家安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。 expressExpress是一个基于Node.js平台的极简、灵活的web应用开发框架,它提供一系... 查看详情

node.js零基础详细教程:node.js事件机制node异步io操作

...此教程将教会大家安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。 node.js事件机制 node.js是单线程,但是通过事件和回调支持并发,可以实现非... 查看详情

nodejs零基础详细教程1:安装+基础概念

...此教程将教会大家安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。每日更新,建议跟学,按照本教程学习一定可以学好Nodejs,中途发现教程有误的地... 查看详情

安装使用mongoose配合node.js操作mongodb的基础教程转载

这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友可以参考下安装mongoose使用express准备一个TestMongoDB项目,命令序列如下:express... 查看详情

零基础学习mongodb——mongodb简介(代码片段)

接下来会学习node.js以及mongodb数据库的知识,好好学习,天天向上!一、数据库简介数据库是按照数据结构来组织、存储和管理数据的仓库。我们的程序都是在内存中运行的,一旦程序运行结束或者计算机断电ÿ... 查看详情

零基础学习mongodb——mongodb简介(代码片段)

接下来会学习node.js以及mongodb数据库的知识,好好学习,天天向上!一、数据库简介数据库是按照数据结构来组织、存储和管理数据的仓库。我们的程序都是在内存中运行的,一旦程序运行结束或者计算机断电ÿ... 查看详情

nodejs零基础详细教程2:模块化fs文件操作模块http创建服务模块

...此教程将教会大家安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。 模块儿化 为什么需要模块儿化?我们以前的常规js代码中,我们为了重用一... 查看详情

数据未从 node.js 保存在 MongoDB 中

...余的api我正在输入所有详细信息并尝试将其存储在mongodb数据库中。//callthepackagesweneedvarexpress=require(\'express\');var 查看详情

mongoose基础入门

...先介绍使用NodeJS操作MongoDB的方法  如果使用程序操作数据库,就要使用MongoDB驱动。MongoDB驱动实际上就是为应用程序提供的一个接口,不同的语言对应不同的驱动 查看详情

windows10安装mongodb基础详细教程(代码片段)

...logs文件夹,用来存储mongodb的数据和日志文件。启动数据库,进入你mongodb的bin目录下。cd/dD:\\MogoDB\\mongodb-win32-x86_64-windows-5.0.8\\bin启动命令mongod.exe--dbpathD:\\MogoDB\\mongodb-win32-x86_64-windows-5.0.8\\data--logpathD:\\MogoDB\\mongodb-win32-x86_... 查看详情

python其实很简单!从零基础到大佬,超详细知识点汇总,附教程

参考技术A一、变量二、控制流程:条件语句三、循环和迭代List:集合|数组|数据结构用Python的语法,也很好去理解:字典:Key-Value数据结构类&对象一些理论:Python面向对象编程模式:ON 查看详情

知道最新版本的 Node.js 和 MongoDB 的最新教程吗? [关闭]

】知道最新版本的Node.js和MongoDB的最新教程吗?[关闭]【英文标题】:KnowanyrecenttutorialsforthelatestversionofNode.jswithMongoDB?[closed]【发布时间】:2013-04-1000:26:18【问题描述】:我一直在尝试来自谷歌搜索的Node.js+MongoDB教程和旧的***答案... 查看详情

node.js 表达 mongodb 保存消息?

...我可以有一个盒子,把我的名字放进去,提交它并保存到数据库中,这就是我所需要的。我尝试通过学习一些教程来做到这一点,但我被卡住了。我试图通过聊天来做到这一点,然 查看详情

Node.Js 网络服务器不会从 mongodb 访问数据

...一个教程并制作了一个简单的restfulapi。之后,我在我的数据库中添加了一个管理员用户。当我运行服务器时,身份验证工作,但如果我尝试通过浏览器的api访问数据,我会得到永恒的“等待来自本地主机的响应”。既然 查看详情

零基础学习mongodb——管理用户(代码片段)

...到mongodb的一些历史,比如删库勒索,因此开放的数据库是很危险的,所以我们需要给它们添加管理用户,这样为我们的数据安全加一道墙一、管理员类型mongodb提供了很多了角色,用于不同情境下对数据库进行... 查看详情

零基础学习mongodb——管理用户(代码片段)

...到mongodb的一些历史,比如删库勒索,因此开放的数据库是很危险的,所以我们需要给它们添加管理用户,这样为我们的数据安全加一道墙一、管理员类型mongodb提供了很多了角色,用于不同情境下对数据库进行... 查看详情

零基础学习mongodb——连接数据库(代码片段)

...mongod.exe文件或者可以将bin配置到环境变量path中三、连接数据库cmd命令行输入mongo连接本地数据库,默认端口27017四、数据库基本操作showdbs或 查看详情

零基础学习mongodb——连接数据库(代码片段)

...mongod.exe文件或者可以将bin配置到环境变量path中三、连接数据库cmd命令行输入mongo连接本地数据库,默认端口27017四、数据库基本操作showdbs或 查看详情