NoSQL数据库一MongoDB基本使用

  

如今的网站对数据存储要求越来越灵活,在这种需求下NoSQL也就是非关系数据库越来越流行。所谓非关系数据库,是指不使用SQL语言进行数据操作的数据库的统称。这类数据库存储数据时没有固定的模式,不支持数据表加入的操作,可以很方便的进行横向扩展。非关系数据库种类很多,其中MongoDB和复述,应用广泛。

  

一,MongoDB介绍

  

MongoDB是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

  

二、安装MongoDB

  

MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。
打开终端,输入以下命令:
<代码> sudo apt-get安装MongoDB
安装完成后,在终端输入以下命令查看MongoDB版本:
<代码> mongo - version
输出版本信息,表明安装成功

  

启动和关闭mongodb命令如下:

  
 <代码>服务mongodb的开始
  服务mongodb停止 
  

默认设置MongoDB是随Ubuntu启动自动启动的。
输入以下命令查看是否启动成功:
<代码> pgrep mongo - l #注意:- l是英文字母l,不是阿拉伯数字1

  

卸载MongoDB
<代码> sudo apt-get——清洗去除MongoDB mongodb-clients MongoDB服务器代码

  

三、使用MongoDB

  

<强>壳命令模式
输入mongo进入壳命令模式,默认连接的数据库是测试数据库,在此之前一定要确保你已经启动了MongoDB,否则会出现错误,启动之后运行成功,如下截图:
 NoSQL数据库一MongoDB基本使用“> <br/> MongoDB存储的文档记录是一个BSON对象,类似于JSON对象,由键值对组成。比如一条用户记录:</p>
  <pre> <代码> {
  名称:“艾登”,
  年龄:30岁
  电子邮件:“luojin@simplecloud.cn”
  }</代码> </pre>
  <p>每一个文档都有一个id字段,该字段是主键,用于唯一的确定一条记录。如果往MongoDB中插入数据时没有指定id字段,那么会自动产生一个id字段,该字段的类型是ObjectId,长度是12个字节。在MongoDB文档的字段支持字符串,数字,时间戳等类型。一个文档最大可以达到16 m,可以存储相当多的数据。</p>
  <p>常用操作命令:<br/>数据库相关</p>
  <ul>
  <李> show dbs:显示数据库列表</李>
  <李>显示集合:显示当前数据库中的集合(类似关系数据库中的表表)</李>
  <李>显示用户:显示所有用户李</>
  <李>使用yourDB:切换当前数据库至yourDB李</>
  <李> db.help():显示数据库操作命令李</>
  <李> db.yourCollection.help():显示集合操作命令,yourCollection是集合名李</>
  </ul>
  <p>先尝试往MongoDB中插入一条数据:</p>
  <pre> <代码> mongo美元
  比;使用shiyanlou
  比;db.user。insertOne ({name:“艾登”,年龄:30岁,电子邮件:luojin@simplecloud.cn, addr: [“CD”,“SH”]})
  {
  “承认”:没错,
  “insertedId”: ObjectId (“59 a8034064e0acb13483d512”)
  }
  比;显示数据库;
  管理0.000 gb
  本地0.000 gb
  shiyanlou 0.000 gb
  比;显示集合;
  用户代码</> </>之前
  <p>可以看的到,在插入数据前使用使用指令,切换到了shiyanlou数据库,尽管该数据库暂时不存在,但当我们插入数据后,该数据库就被自动创建了,告诉数据库收集和显示分别显示了当前存在的数据库和当前数据库的所有文档集合。而且数据插入后,自动添加了id字段。插入多条数据,可以使用db.collection。insertMany方法:</p>
  <pre> <代码>比;db.user.insertMany ([
  …{名称:“lxttx”,年龄:28日,电子邮件:lxttx@simplecloud.cn, addr: [“BJ”、“CD”]},
  …{名称:“金”,年龄:31日电子邮件:jin@simplecloud.cn, addr:[“广州”,“深圳”]},
  …{名称:“南”,年龄:26日,电子邮件:nan@simplecloud.cn, addr: [“NJ”、“啊”]}
  …])
  {
  “承认”:没错,
  “insertedIds”:(
  ObjectId (“59 a8034564e0acb13483d513”),
  ObjectId (“59 a8034564e0acb13483d514”),
  ObjectId (“59 a8034564e0acb13483d515”)
  ]
  }</代码> </pre>
  <p> <em>添加的数据其结构是松散的,只要是bson格式均可,列属性均不固定,根据添加的数据为准。先定义数据再插入,就可以一次性插入多条数据,运行完以上例子,库自动创建,这也说明MongoDB不需要预先定义,在第一次插入数据后,收集会自动的创建。<h2 class=NoSQL数据库一MongoDB基本使用