MongoDB不是关系型数据库,因此也就没有了表,行等概念,但是有一些类似的概念,主要有 数据库(Database),集合(Collection),文档(Document),其中数据库跟关系型数据库的数据库是一个概念,集合相当于表,文档相当于行。下面分别来介绍这些概念。

1. 文档:

文档是MongoDB的核心概念,也是MongoDB种数据的基本单元。所谓文档就是多个键及其关联的值有序的放置在一起。如,

{"greeting":"Hello World!"}

在这个文档中,"greeting"是键,"Hello World!"是值

当然,绝大多数的文档包含多个键/值,比这个要复杂的多,如:

{"author":"Tian","Sex":"M","hobby":"MBK"}

甚至文档里面还包含文档。

1.1 文档的键的命名规则

1). 文档的键是字符串;

2). 键不能包含有\0(空字符),这个字符用来表示键的结尾;

3). $和.有特殊的含义,被保留了;

4). 以下划线"_"的键被保留了,虽然这个并不是严格的要求。

5). 文档的键不能重复

6). 区分大小写,如{"author":"tian"}和{"Author":"tian"}是不一样的

2. 集合

集合,指的是一组文档。

MongoDB的集合虽然类似于关系数据库的表,但是,集合是无模式的,不必像关系数据库的表那样,必须事先定义,并且结构固定。

我们可以将以下2个文档存到同一个集合中:

{"author":"tian"}

{"age":6}

这两个文档,键不一样,对应的值也不一样,甚至类型也不一样,而这在关系数据库中是不可想象的。

2.1 集合的命名

1). 集合名不能是空字符串""

2). 集合名不能含有\0(空字符),这个字符是集合名的结尾

3). 集合名不能以"system."开头,以"system."开头表示系统集合,如system.users这个集合保留数据库用户的信息,system.namespaces这个集合保存数据库所有集合的信息

4). 用户创建的集合名字不能含有保留字符$

2.2 子集合

我们可以通过"."字符分开的按命名空间划分的子集合来组织集合。如,一个带有博客功能的应用可能包含2个集合blog.authors和blog.posts,这样做的目的只是为了组织更好,事实上, 我们不一定存在blog这个集合的。

3. 数据库

多个集合组成数据库。一个MongoDB实例可以包含多个数据库,他们之间可以视为完全独立。

3.1 数据库命名

1). 不能是空字符串;

2). 不能含有空格、.、$、/、\、和\0;

3). 应全部小写;

4). 最多64字节;

5). 不能是保留的数据库名:admin,local,config

参考:MongoDB权威指南

转载于:https://www.cnblogs.com/tian2010/archive/2012/07/17/2596459.html

(2) MongoDB基本概念及与关系型数据库的对照相关推荐

  1. 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)

     测试脚本: Mysql测试脚本: [php]view plaincopyprint? 1. <?php 2. header("Content-Type:text/html;cha ...

  2. 非关系型数据库mongoDB以及基础操作

    我们都知道,关系型数据库,例如Mysql.Oracle拥有四个特性(ADIS),分别为原子性.隔离性.一致性.连续性.而今天带来的,是非关系型数据库mongoDB,它与关系型数据库不同的是mongoD ...

  3. Mongodb数据库(1.mongodb的介绍(非关系型数据库)下载与安装(Windows10))

    1. MongoDB是一种非关系型数据库    (1)也就是所说的NoSQL     •NoSQL最常⻅的解释是"non-relational", "Not Only S ...

  4. MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库

    概述 事情的起因要从最近的一个新产品说起,最近部门有一个新的大数据产品规划,在考虑技术实现时,有一个动态表字段扩展的需求,比如原来表结构里只有a.b字段,需要不断的往里新增c.d.e等等字段,并且数据 ...

  5. NoSQL 数据库和传统关系型数据库到底有什么区别?

    人们都会问,数据库到底有哪些不一样的关系 nosql数据库和传统关系库到底啥区别? 问题来自社区会员,回答来自社区交流,供同行参考 @zhuqibs Mcd 软件开发工程师: 长篇大论就不写了,就写几 ...

  6. 《MongoDB入门教程》第03篇 MongoDB基本概念

    本文将会介绍 MongoDB 中的一些基本概念,例如文档.集合.数据库以及命名空间等. 数据格式 在 MongoDB 中,数据使用 JSON 或者 BSON 格式进行处理和存储. JSON JSON ...

  7. 关系型数据库和非关系型的区别

    关系型数据库: 关系型数据库是指采用关系模型来组织数据信息的数据库. 其实就是二维表,它是多个二维数组的集合,我们将数据存储在表格中,通过建立表格与表格之间的关系来维护数据间的关系. 优点: 1.容易 ...

  8. 关系型数据库和非关系型数据库

    一.二者区别 关系型数据库 非关系型数据库 支持强大的查询语言 支持非常简单的查询语言 它具有固定的模式 无固定模式 遵循ACID(原子性.一致性.隔离性.持久性) 只有"最终一致" ...

  9. 关系型数据库 RDBMS 的旧与新 -- 谈谈 NewSQL

    作者简介 陈运海 DaoCloud 数据平台架构师,长期关注数据库系统.分布式系统.区块链等领域. 这是最好的时代,也是最坏的时代. 在这个时代我们有各种技术可以选择,在这个时代我们有各种技术要选择. ...

最新文章

  1. 程序员转型AI,成功几率有几分?
  2. linux中查看lvm的名称,关于Linux中LVM的使用总结
  3. java ear war_[JAVA语法]怎样制作ear,war文件
  4. jmeter中生成UUID作为唯一标识符
  5. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
  6. 单峰数组找最大元素C语言,查找单峰数组中的第k个元素
  7. java 环绕通知_aop 环绕通知 可以计算机 程序执行的时间
  8. 关于静态成员变量的谈论
  9. vue echarts在中国地图让某个省份凸起
  10. class0:计算机的潜意识——机器学习
  11. matlab vgg图像风格迁移,迁移网络的应用-图像风格迁移
  12. teraterm 执行sql_tera term通过ttl脚本 自动连接服务器
  13. Python--Turtle钟表
  14. 期货市场亏了怎么自救?
  15. God.org单域环境攻略(三)
  16. [20181031]如何确定db_link的进程号.txt
  17. 组合用计算机怎么按,一种常用的计算机键盘按键组合(快捷键)-Windows组合键,解释非常详细...
  18. Linux软件的安装
  19. CAD特性窗口,快捷特性窗口等不显示图形类型问题
  20. java 导出excel带多种颜色

热门文章

  1. 流水灯verilog实验原理_IC设计实例解析之“流水线技术”
  2. 设计模式(二)设计模式的本质
  3. java -锁(公平、非公平锁、可重入锁【递归锁】、自旋锁)
  4. 【牛客 - 297D】little w and Exchange(上下界贪心)
  5. oracle数据库建表视频,Oracle数据库的创建表全
  6. 倍福 在 vs 里 编程 是怎么做到的_截图里的文字要改,字体怎么做到一模一样?...
  7. 兔子吃萝卜的c语言编程,狼追兔子的c语言实现
  8. 莆田学院计算机科学与技术分数,莆田学院录取分数线2021是多少分(附历年录取分数线)...
  9. php如何判断文件的内容,php 判断文件内容是否存在的方法
  10. Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!