(二)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可以为数据集合里面的任意类型包括数组和文档。

(二)MongoDB基本概念的更多相关文章

  1. 003.MongoDB主要概念

    一 对比关系 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行 ...

  2. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  3. SQLite入门与分析(二)---设计与概念(续)

    SQLite入门与分析(二)---设计与概念(续)   写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim G ...

  4. mongodb基本概念解析

    MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术 ...

  5. 学习MQ(二)基本概念

    学习MQ(二)基本概念 这次简单罗列一下MQ的基本概念,还有我对它们的理解 1.queue manager 队列管理器,这是MQ系统中最上层的一个概念.每一个queue manager都有一个侦听器, ...

  6. JVM 内部原理(二)— 基本概念之字节码

    JVM 内部原理(二)- 基本概念之字节码 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Enviro ...

  7. MongoDB入门二:基本概念

    前言 工欲善其事必先利其器.在学习MongoDB之前,需要对MongoDB的一些基本概念有系统的了解. 所以,本篇文章主要介绍MongoDB的一些基本概念,这些概念的定义均来自<MongoDB权 ...

  8. 《mongoDB》概念-数据类型

    一:概念 - mongoDB 是一个面向文档的数据库,而不是关系型数据库. - 摘自<mongoDB 权威指南 第2版>第3页 二:数据类型 - null - 用于表示空值或者不存在的字段 ...

  9. MongoDB基本概念

    MongoDB是一种强大灵活可扩展的数据存储方式,它扩展了关系数据库的众多功能.MongoDB的功能非常丰富,但是却非常容易上手和便于使用,今天来了解一下MongoDB的主要概念. 文档 文档是的核心 ...

随机推荐

  1. Redis与Mysql双写一致性方案解析

    一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存 ...

  2. libevent笔记5:水位watermarks

    bufferevent中提供了对读写回调的触发条件及最大缓存长度的设置,即低高水位: 低水位:是读写回调函数的最低触发数据长度,当输入/输出缓存区中的数据长度小于低水位时,读/写回调函数不会被触发: ...

  3. 收藏:png8和png24的根本区别

    1.png8和png24的根本区别,不是颜色位的区别,而是存储方式不同. 2.png8有1位的布尔透明通道(要么完全透明,要么完全不透明),png24则有8位(256阶)的布尔透明通道(所谓半透明). ...

  4. QuantLib 金融计算——收益率曲线之构建曲线(5)

    目录 QuantLib 金融计算--收益率曲线之构建曲线(5) 概述 Nelson-Siegel 模型家族的成员 Nelson-Siegel 模型 Svensson 模型 修正 Svensson 模型 ...

  5. 百度前端技术学院-task1.10源代码

    任务十的源代码,其实有github的,但就是不知道怎么弄,近期会学会的.在IE和firefox上检测运行良好. <!DOCTYPE html> <html lang="en ...

  6. LOJ2336 JOI2017 绳 贪心、构造

    传送门 首先显然的是可以一开始先染好再做.每个点只会被染一次.最后只剩下两种颜色. 接下来是结论时间:序列可以反转的充要条件是除了首尾的极大颜色连通块以外其他极大颜色连通块长度为偶数. 证明充分性:考 ...

  7. 谷歌浏览器安装Elasticsearch-head 插件

    下载该插件,地址:https://github.com/liufengji/es-head/blob/master/elasticsearch-head.crx 下载后的文件名是:elasticsea ...

  8. 异常---Day21(写得有错请指出,感谢)

    异常的概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:指的是程序在执行过程中,出现的非正常的情况,终会导致J ...

  9. Java自学-接口与继承 接口

    设计Java的接口 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果. 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们 ...

  10. Java自学-操作符 关系操作符

    Java的关系操作符 关系操作符:比较两个变量之间的关系 > 大于 >= 大于或等于 < 小于 <= 小于或等于 == 是否相等 != 是否不等 示例: public clas ...