zoukankan      html  css  js  c++  java
  • (二)MongoDB基本概念

    (二)MongoDB基本概念

    2018年03月07日 08时43分53秒


    mognoDB是一个面向文档的数据库,而不是关系型数据库,是不是用关系型数据库主要是为了获得更好的扩展性,还会有其他的诸多的好处。基本的使用了解下面的一部分概念就可以了,不需要太较真。

    初级学习,mongoDB的灵活性主要从下面的两个方面凸显:

    1. 与关系型数据库相比较不再具有行(row)的概念,使用文档模型(document)取代关系型数据库中的行,且每一个文档中都可以再次嵌入文档与数组。故面向文档可以使用一条记录表现复杂的层次关系。
    2. 不再具有预定的列,文档中表现值与索引的方式不再是列名与值,而是键(key)值(value),且key-value没有固定的类型与大小,是在插入数据的时候指定的,这样每一个表(对应mongo中的集合)中的文档(也就是行)不用在具有相同的列了,添加删除字段变得更加的容易了。

    数据结构模型
    数据结构模型

    看着上面的模型图来说一下mongo的基本概念:

    • 文档(document):是mongoDB中的基本单元,非常类似于关系型数据库中的行
      {“url” : “www.baidu.com”}
      上面的就是一个最简单的文档,key是url,value是www.baidu,com
      作为key只能是字符串格式,且区分大小写,同一个文档中key不能重复;value是可以是多种格式,不过目前经常使用的无非是内嵌文档、数组、字符串、整型,在后面的操作练习中会对这几种类型提供例子。

    • 集合(collection):就是一个拥有动态模式的表,相当于关系型数据库中的表;动态模式是指集合中的每一个文档可以不必具有相同结构、相同类型的字段,每一个文档都具有的就是"_id"。
      {“age” : 18}
      {“url” : “www.baidu.com”}
      上面的两个文档是可以存储在同一个集合中的。

    • 数据库(database):mongoDB安装在一台机器上的mongo称之为一个实例,一个mongoDB实例可以拥有多个相互独立的数据库。

    • 每个文档都有一个特殊的键“_id”,这个键在一个集合中是唯一的
      我们将上面的{“url” : “www.baidu.com”}插入数据库来查看一下在数据库中存储的结构:
      查询语句(下一节分析查询语法):db.blog.find({“url” : “www.baidu.com”}).pretty();
      { “_id” : ObjectId(“5a231b3b8d1128d0c73b3496”), “url” : “www.baidu.com” }
      可以看出给本文档增加了一个_id,当然我们也可以自己指定_id,不过不是特别推荐。

    总的来说mongoDB的基本特点可以总结为以下类型:

    1. 面向集合(collenction)
      每个集合在数据库中都有一个唯一的标志名,每个文档可以包含无限多个文档,类似于关系型数据库中的表。
    2. 模式自由
      value可以是任何形式的数据,在同一个文档中可以包含多个种类的数据类型
    3. 文档型
      存储的数据是KV(键值对)的形式,key是字符串,插入的时候不用指定key的类型,系统会自动将其转换为字符串类型;value可以为数据集合里面的任意类型包括数组和文档。
  • 相关阅读:
    MySQL的注入过程
    nmap 扫描器的功能
    用dvwa演示带有用户令牌(user_token)的暴力破解
    在python中安装requests模块
    如何发现struts2漏洞
    vs2017的主题颜色的配置
    在vs上开发linux c++
    linux主机之间的SSH链接
    verilog 实用的小技巧
    verilog 实现DDS
  • 原文地址:https://www.cnblogs.com/h-zhang/p/11962959.html
Copyright © 2011-2022 走看看