MongoDB数据库初探 --- 认识与安装 && Mongoose安装

注意: monogdb数据在使用以后必须及时 mongodb.close()不然后台崩溃。

第一部分:

  MySQL数据库是关系型数据库,可是使用node开发时多用MongoDB数据库,二者各有优点,因此综合学习会有更好的选择。html

  看看官网是怎么介绍的吧~node

MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.mongodb

  即 MongoDB 是文档数据库,其中MongoDB中的每一条记录就是一个文档。下面是一些对于MongoDB数据库重要知识点的总结归纳。shell

 

 

1. MongoDB 中数据库、集合、文档的概念是什么? 他们之间的关系是怎样的?数据库

  咱们知道MySQL是关系型数据库,而MongoDB不是,咱们使用下表进行对比:浏览器

  

 经过这张表中的 table joins 咱们能够看出MongoDB的最大特色:不支持表链接。 即它不属于关系型数据库。服务器

  文档mongoose

  • 文档是一组(注意:不是一个)键值对。
  • 文档相似于RDBMS中的行、记录, 多个键值对按照必定的顺序就能够组成文档(若是顺序变化了,就是另一个文档), 文档是MongoDB中的基本组成单元。 
  • MongoDB是区分大小写的,且键是字符串,而值能够是任意类型(包括文档)。

  下面就是一个文档:ide

{"name": "John Zhu", "age":21}

 

  能够看出这和JSON基本上是一致的。函数

 

  集合

  • 集合是一组(固然这一组中也可能只有一个文档)文档。
  • 集合相似于RDBMS中的表, 可是对于MongoDB而言,集合中的文档其模式无需彻底一致(关系数据库中,每一行都有同名的键,有对应相同类型的键值)。

  下面就是一个集合(包含了两个文档,固然也能够更多):

{"name": "John Zhu", "age": 21}
{"gender": "male", "school": "xjtu"}

  这就是一个集合,其中包含了两个文档,值得注意的是,这个集合中的两个文档的类型并不一样,也就是说MongoDB在组织记录时的方法和MySQL是不同的。

 

 数据库

  数据库是由多个集合组成的,而且数据库之间是独立的,这和 MySQL 是同样的。

  下面的几个数据库是MongoDB保留的:

  • admin (root用户库)
  • local
  • config (保存分片信息)

 

2. 如何在计算机上安装MongoDB数据库

第一步: 官网下载.msi文件

第二步: 默认路径安装(其中 Complete 是默认安装到C盘的program files下的MongoDB中,也能够选择Custom来自定义安装文件,为了方便,推荐使用默认安装)

默认的安装路径为:C:\Program Files\MongoDB\Server\3.4\bin。

 

第三步:建立data/db

   mongodb默认会在安装的盘的根目录的建立文件夹data/db来存储数据,若是使用命令安装发现并不能建立data文件夹,那么就要手动建立该文件

   即在C盘根目录下建立data文件,data文件建立db文件夹用来存储数据库数据。

 固然也不是必须在根目录下建立data/db文件,但若是不这样,后序在操做上比较麻烦,须要指出data/db的位置才行。好比将dada/db放在了f盘,这一这样启动MongoDB服务器:

mongod --dbpath f:/data

 

 显然,这是很是麻烦的。 

 

第四步:启动MongoDB服务器(注意:若是没有第三步中建立data/db,那么本次执行将会失败!)

 复制路径C:\Program Files\MongoDB\Server\3.4\bin在cmd中进入,而后执行:

mongod

 启动MongoDB服务器。

若是咱们但愿更改端口,能够这样启动数据库:

mongod -port 28888

这就会在端口28888监听了。 咱们再浏览器上输入 localhost:28888 便可访问本地的MongoDB服务器。

 在没有第三步的状况下执行此命令,结果以下:

 

能够看到开始给MongoDB服务器分配了一个pid(进程id),分配了27017端口用于访问,而且默认的数据库在C盘下的data\db下(可是执行这一步以前咱们没有建立这个文件),host为个人主机名称。 

接着在中间靠后出现错误提示: exception in initAndListen: 29 Data directory C:\data\db\ not found, termination ,即因为没有找到 data\db 文件夹,因此分配数据失败,进而关闭窗口,服务器启动失败。

 在完成第三步的状况下,结果以下:

 

即一样分配了pid等,而后由于已经存在了 data/db 因此成功地导入数据,这时咱们打开C盘的data/db发现就已经多了不少数据,以下:

最终提示 : waiting for connections on port 27017...  即MongoDB数据库已经开启,等待客户端链接...

这时咱们能够在浏览器中输入 localhost:27017 , 显示以下:

 

即客户端尝试经过http协议链接MongoDB服务器。

 

第五步:链接并操做数据库

另外打开一个cmd(这是关键,由于服务器要运行,因此不能破坏刚刚开启的服务器),而后输入:

mongo

 

这样就打开了Mongo Shell, 而后经过shell咱们就能够管理数据库了。

以下所示:

能够看到在输入了mongo以后,MongDB的版本为3.4.4, 成功链接到了 MongoDB 服务器,同时还给出了一些警告, 即链接控制不被容许,且对于数据和配置的读写都是不受限制的。

 

注意: 这里mongod链接不带鉴权,客户端直接连上就能够操做了。 若是须要能够自行设置。

 

Ok!  到这里就能够进行MongoDB数据库的操做了。可是咱们发现,若是每次但愿开启MongoDB服务器,并链接服务器,都须要先C: -> cd program files -> cd mongodb -> cd server -> cd 3.4 -> cd bin 而后再执行其余的操做,这是很是麻烦的。 因此将之将入环境变量是一个不错的方法!

 

第六步: 将mongodb路径加入环境变量,方便操做。

  以下所示:

  如今咱们发现,即便不进入bin文件,也能够直接执行mongod命令(开启MongoDB数据库)和mongo命令(链接MongoDB数据库)了,以下所示:

 

 

 

 

3. 什么是Mongo Shell?  他有什么用

   MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操做和管理的交互式环境。因此在shell中咱们就能够执行JavaScript代码,包括函数。(console不可以使用)。以下所示:

   

  能够看到经过mongo咱们就能够进入shell了,而后就可使用一些简单的js代码, 经过ctrl + c或者是quit() 函数能够退出shell。

       

  能够看到咱们能够利用 {} 来多行输入。

  另外,咱们输入db,能够发现会返回test, 即test是默认的MongoDB数据库。

  下面是在shell中的一些基本操做:

     

  即其中的 show dbs能够显示出当前全部的数据库, use admin表示切换到admin数据库, 而 db 表示显示当前的数据库。

 

 

第二部分

  什么是Mongoose呢?它是用于管理数据的。后面详细介绍。

    mongoose实际上就是对操做mongoDB数据库代码的一层封装,方便咱们经过js使用数据库。 可是直接使用mongodb也是能够的。 

  这里有mongoose的学习文档。 

相关文章
相关标签/搜索