(2) MongoDB基本概念及与关系型数据库的对照
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基本概念及与关系型数据库的对照相关推荐
- 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)
测试脚本: Mysql测试脚本: [php]view plaincopyprint? 1. <?php 2. header("Content-Type:text/html;cha ...
- 非关系型数据库mongoDB以及基础操作
我们都知道,关系型数据库,例如Mysql.Oracle拥有四个特性(ADIS),分别为原子性.隔离性.一致性.连续性.而今天带来的,是非关系型数据库mongoDB,它与关系型数据库不同的是mongoD ...
- Mongodb数据库(1.mongodb的介绍(非关系型数据库)下载与安装(Windows10))
1. MongoDB是一种非关系型数据库 (1)也就是所说的NoSQL •NoSQL最常⻅的解释是"non-relational", "Not Only S ...
- MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库
概述 事情的起因要从最近的一个新产品说起,最近部门有一个新的大数据产品规划,在考虑技术实现时,有一个动态表字段扩展的需求,比如原来表结构里只有a.b字段,需要不断的往里新增c.d.e等等字段,并且数据 ...
- NoSQL 数据库和传统关系型数据库到底有什么区别?
人们都会问,数据库到底有哪些不一样的关系 nosql数据库和传统关系库到底啥区别? 问题来自社区会员,回答来自社区交流,供同行参考 @zhuqibs Mcd 软件开发工程师: 长篇大论就不写了,就写几 ...
- 《MongoDB入门教程》第03篇 MongoDB基本概念
本文将会介绍 MongoDB 中的一些基本概念,例如文档.集合.数据库以及命名空间等. 数据格式 在 MongoDB 中,数据使用 JSON 或者 BSON 格式进行处理和存储. JSON JSON ...
- 关系型数据库和非关系型的区别
关系型数据库: 关系型数据库是指采用关系模型来组织数据信息的数据库. 其实就是二维表,它是多个二维数组的集合,我们将数据存储在表格中,通过建立表格与表格之间的关系来维护数据间的关系. 优点: 1.容易 ...
- 关系型数据库和非关系型数据库
一.二者区别 关系型数据库 非关系型数据库 支持强大的查询语言 支持非常简单的查询语言 它具有固定的模式 无固定模式 遵循ACID(原子性.一致性.隔离性.持久性) 只有"最终一致" ...
- 关系型数据库 RDBMS 的旧与新 -- 谈谈 NewSQL
作者简介 陈运海 DaoCloud 数据平台架构师,长期关注数据库系统.分布式系统.区块链等领域. 这是最好的时代,也是最坏的时代. 在这个时代我们有各种技术可以选择,在这个时代我们有各种技术要选择. ...
最新文章
- 程序员转型AI,成功几率有几分?
- linux中查看lvm的名称,关于Linux中LVM的使用总结
- java ear war_[JAVA语法]怎样制作ear,war文件
- jmeter中生成UUID作为唯一标识符
- 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
- 单峰数组找最大元素C语言,查找单峰数组中的第k个元素
- java 环绕通知_aop 环绕通知 可以计算机 程序执行的时间
- 关于静态成员变量的谈论
- vue echarts在中国地图让某个省份凸起
- class0:计算机的潜意识——机器学习
- matlab vgg图像风格迁移,迁移网络的应用-图像风格迁移
- teraterm 执行sql_tera term通过ttl脚本 自动连接服务器
- Python--Turtle钟表
- 期货市场亏了怎么自救?
- God.org单域环境攻略(三)
- [20181031]如何确定db_link的进程号.txt
- 组合用计算机怎么按,一种常用的计算机键盘按键组合(快捷键)-Windows组合键,解释非常详细...
- Linux软件的安装
- CAD特性窗口,快捷特性窗口等不显示图形类型问题
- java 导出excel带多种颜色
热门文章
- 流水灯verilog实验原理_IC设计实例解析之“流水线技术”
- 设计模式(二)设计模式的本质
- java -锁(公平、非公平锁、可重入锁【递归锁】、自旋锁)
- 【牛客 - 297D】little w and Exchange(上下界贪心)
- oracle数据库建表视频,Oracle数据库的创建表全
- 倍福 在 vs 里 编程 是怎么做到的_截图里的文字要改,字体怎么做到一模一样?...
- 兔子吃萝卜的c语言编程,狼追兔子的c语言实现
- 莆田学院计算机科学与技术分数,莆田学院录取分数线2021是多少分(附历年录取分数线)...
- php如何判断文件的内容,php 判断文件内容是否存在的方法
- Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!