Node后端基础6-操作数据库(MongoDB)

在之前的文章中,我们对于Node有了一个基本的了解和操作,今天就讲一下Node如何操作数据。在此之前,我们先要了解数据库的概念。

一、数据库的概念

        数据库就是数据的仓库,用来对数据进行一个存储,它可以与多个用户共享数据,具有尽可能小的冗余度,是一个数据集合。数据库有很多,像MySql,DM,DB2,SQL Server,MongoDB,BaseX 等等。

        数据库分为非关系型数据库(Nosql)和关系型数据库(SQL),它们之间是由很多区别,就像:

  1.  成本:Nosql数据库易部署,不用像Oracle那般花费较高成本选购。
  2.  查询速率:Nosql数据库将数据储存于缓存当中,不用历经SQL层的分析;关系型数据库将数据储存在电脑硬盘中,查询速率远不如Nosql数据库。
  3.  储存格式:Nosql的储存文件格式是key,value方式、文本文档方式、照片方式这些,能储存的对象种类灵活;关系数据库则只适用基础类型。
  4.  可扩展性:关系型数据库有join那样的多表查询机制限定造成拓展性较差。Nosql依据键值对,数据中间沒有耦合度,因此容易水平拓展。
  5.  数据一致性:非关系型数据库注重最终一致性;关系型数据库注重数据整个生命周期的强一致性。
  6.  事务处理:SQL数据库支持事务原子性粒度控制,且方便进行事务回滚;NoSQL也支持事务处理,但可靠性不足,其价值在于可扩展性和大数据量处理。

而我们今天要说的MongoDB,就是一个非关系型数据库。

二、MongoDB

         MongoDB 是一款流行的开源文档型数据库,MongoDB 在概念模型上参考了 SQL数据库,但并非完全相同。因此,有人就觉得MongoDB是非关系型数据库中最像sSQL的(SQL是关系型数据库)。它对于数据的操作命令是基于JSON/BSON 格式的语法。有趣的是,MongoDB可以进行SQL查询,但是得借助第三方工具,感兴趣的兄弟可以去搜一下。

那么,如何使用MongoDB?

其实就两个步骤:

        1.安装MongoDB,下面是地址。MongoDB:应用程序数据平台 | MongoDBicon-default.png?t=N7T8https://www.mongodb.com/zh-cn        2.安装完成后,打开cmd 进入到  C:\Program Files\MongoDB\Server\5.0\bin 目录下,打开终端, 通过执行 mongo 命令,连接本地服务器 。

这样就可以在cmd中连接到MongoDB数据库了,接下来说一下MongoDB的一些执行命令。    

1.数据库操作

        查看数据库  show dbs      默认的数据库  config  local  admin

        打开数据库(创建数据库)   use 数据库名称    如果数据库不存在,就会自动创建,然后再打开   

        注意 : 如果新创建的数据库中没有集合 , 数据库查不到  show dbs  不显示新创建的数据库

        删除数据库   db.dropDatabase()     删除当前打开的数据库 

2.集合操作

        查看集合  show collections    

        创建集合   db.createCollection("student”)   

        删除集合   db.集合名称.drop()  

3.数据操作

        添加文档  insert  /   insertMany  

        添加一条文档  db.集合名称.insert( {  } )

        添加多条文档  db.集合名称.insertMany( [ {},{},{},... ] )

        查询文档  find( { 查询条件 },{ 查询投影字段 } )

        查询所有数据   db.stu.find()

        查询学生姓名和年龄字段    db.stu.find( {},{ name:1 , age:1  , _id : 0} )   1表示显示    0 表示隐藏id

4.条件查询 :

        $and     并且         $or  或者

        $gt  大于     $gte   大于等于

        $lt    小于      $lte  小于等于

        $ne  不等于    

        $in 包含  值是一个数组

举几个例子:

        查询年龄大于20的学生信息  db.stu.find( { age : { $gt:20 } } )

        查询年龄在15—25之间的学生信息  

         查询家庭住址是保定的学生信息  db.stu.find( { addr : "保定" } )

        查询年龄大于20并且家庭住址是保定的学生信息     db.stu.find( {   $and :  [ { age : { $gt:20 } } , {addr : "保定"}   ]    } )

       查询家庭住址是保定或者深圳的学生信息   db.stu.find( { addr : {  $in : [ "保定","深圳" ]  } } )

5.模糊查询 :  正则    

        包含 : /思/    字符串中包含一个思       字符串主要符合这个正则规范      张思雨   李思思

        查询学生的姓名 包含思的学生信息   db.stu.find( { name :  /思/ } )

6.排序查询  sort()

        查询学生信息 并按照年龄排序  db.stu.find().sort( { age : 1 } )    1表示升序      -1 降序

7.分页查询  skip() 跳过      limit() 获取前几条数据

        跳过前两条数据  并  查询后面的数据      db.stu.find().skip(2)

        获取前2条数据  db.stu.find().limit(2)

        查询第 2--5 条数据  db.stu.find().skip(1).limit(4)

8.修改

        修改文档  update( {条件},{$set :  { 修改字段 }  } ,  是否新增true/false  , 是否修改多行 )

        是否新增 : 如果要修改的字段不存在,会自动新增该字段 

        是否修改多行 :  如果满足条件的数据有多条,false只能修改第一条数据,true可以修改多条数据

        修改年龄大于20的学生住址为"广西"      db.stu.update( { age:{$gt:20} }  , {$set :  { addr : "广西" , name:"aaa" }  }  ,  true  ,  false  )

9.删除

        删除文档    remove( { 条件 } )

        清空集合数据  db.stu.remove({})

        按条件删除  db.stu.remove({条件})

三、Node操作MongoDB

 在我们使用express命令快速创建好服务器之后,就可以使用MongoDB了,也是有几个步骤。

首先就是在当前文件夹下,创建一个model文件夹用来放MongoDB的配置文件

Node后端基础6-操作数据库(MongoDB)_第1张图片

然后再model文件夹下再去创建model.js文件和db.js文件,前者是配置数据库中的集合,后者是服务器连接数据库的配置。

接下来,我们要引入一个知识点------mongoose

Mongoose 是一个用于在 MongoDB 中编写和查询模型的库,可以让你简化数据库操作。

首先再项目中使用npm下载mongoose,然后再db.js中导入使用。

直接上代码!

Node后端基础6-操作数据库(MongoDB)_第2张图片

在model.js中定义的是数据集合,也就是表。

Node后端基础6-操作数据库(MongoDB)_第3张图片

最后暴露就ok了。

然后就可以写接口使用了

Node后端基础6-操作数据库(MongoDB)_第4张图片

好了,以上就是关于今天的所有内容,有什么问题可以在评论区讨论,感谢观看!!!

你可能感兴趣的:(数据库,node.js)