[转]MongoDB 概念解析

本文转自:http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

 

任我们学习啊数据库都应当读中的根基概念,在mongodb中着力的概念是文档、集合、数据库,下面我们挨个介绍。

下表将扶持你再易于了解Mongo中的有些概念:

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

透过下图实例,我们也得重新直观的之刺探Mongo中的片概念:

bifa365必发 1


数据库

一个mongodb中得建立多独数据库。

MongoDB的默认数据库也”db”,该数据库存储于data目录中。

MongoDB的么实例可以容纳多只单身的数据库,每一个且发投机之聚合和权力,不同的数据库也放在不同之文书中。

“show dbs” 命令可以展示所有数据的列表。

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> show dbs
local  0.078GB
test   0.078GB
>

执行 “db” 命令可以显得当前数据库对象要集合。

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> db
test
>

运作”use”命令,可以连续不断到一个点名的数据库。

> use local
switched to db local
> db
local
>

如上实例命令中,”local” 是若只要链接的数据库。

每当生一个章节咱们用详细讲解MongoDB中命令的使用。

数据库也通过名字来标识。数据库称为好是满足以下条件的任意UTF-8字符串。

  • 无能够是空字符串(””)。
  • 不得含有’ ‘(空格)、.、$、/、\和\0 (空宇符)。
  • 答应全部大写。
  • 最多64字节。

出一对数据库名是保留的,可以一直访问这些发生特殊作用的数据库。

  • admin
    从权力的角度来拘禁,这是”root”数据库。要是以一个用户增长到这数据库,这个用户自行连续所有数据库的权杖。一些一定的劳动器端命令也只能从者数据库运行,比如列出所有的数据库或者关闭服务器。
  • local:
    这个数目永远不见面吃复制,可以据此来囤限于本地单台服务器的轻易集合
  • config:
    当Mongo用于分片设置时,config数据库在中间采用,用于保存分片的有关信息。

文档

文档是同等组键值(key-value)对(即BSON)。MongoDB
的文档不待设置同样的字段,并且相同之字段不需同的数据类型,这与涉及项目数据库来老挺之界别,也是
MongoDB 非常突出的特点。

一个简短的文档例子如下:

{"site":"www.runoob.com", "name":"菜鸟教程"}

下表列有了 RDBMS 与 MongoDB 对应之术语:

RDBMS

MongoDB

数据库

数据库

表格

集合

文档

字段

表联合

置文档

主键

主键 (MongoDB 提供了 key  为 _id )

数据库服务以及客户端

Mysqld/Oracle

mongod

mysql/sqlplus

mongo

待专注的凡:

  1. 文档中之键/值对是稳步的。
  2. 文档中之价值不仅可以是在双引号里面的字符串,还足以是其余几栽多少类(甚至可是所有嵌入的文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能够生出再度的键。
  5. 文档的键是字符串。除了个别例外情况,键可以下任意UTF-8字符。

文档键命名规范:

  • 键不可知含有\0 (空字符)。这个字符用来代表键的终极。
  • .和$有特别之含义,只有当特定环境下才会采用。
  • 以下划线”_”开头的键是保留的(不是严格要求的)。

集合

聚就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理网:Relational
Database Management System)中之表。

会合在让数据库被,集合没有稳定的布局,这代表你在针对聚集好插不同格式和种类的多寡,但普通状态下我们插入集合的数量还见面来肯定之关联性。

 

按照,我们可拿以下两样数据结构的文档插入到聚集中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜鸟教程","num":5}

当第一独文档插入时,集合就见面受创造。

官方的集合名

  • 集合名不克是空字符串””。
  • 集合名不能够含有\0字符(空字符),这个字符表示集合名的最后。
  • 集合名不能够以”system.”开头,这是吧系统集结保留的前缀。
  • 用户创建的集聚名字不可知含有保留字符。有些驱动程序的确支持于集合名里面包含,这是坐某些系统生成的集结中寓该字符。除非你只要访问这种系统创造的联谊,否则千万不要以名字里出现$。 

一般来说实例:

db.col.findOne()

capped collections

Capped collections 就是一定大小的collection。

她起良高之特性及队列过期的风味(过期仍插入的逐条). 有点和 “RRD”
概念类似。

Capped
collections是高性能自动的护对象的插入顺序。它非常适合类似记录日志的功能
和专业的collection不同,你要使显式的创始一个capped collection,
指定一个collection的尺寸,单位是字节。collection的数目存储空间值提前分配的。

 

要专注的凡指定的仓储大小包含了数据库的峰信息。

 

db.createCollection("mycoll", {capped:true, size:100000})
  • 每当capped collection中,你能够填补加新的对象。
  • 会展开翻新,然而,对象非会见大增存储空间。如果增加,更新就会见失败 。
  • 数据库不同意进行删除。使用drop()方法去collection所有的尽。
  • 瞩目: 删除后,你必须显式的双重创设是collection。
  • 当32bit机器中,capped collection最酷存储吗1e9(
    1X109)个字节。

元数据

数据库的信是储存于联谊中。它们采用了系统的命名空间:

dbname.system.*

当MongoDB数据库被名字空间 <dbname>.system.*
是包含多系统信息之非正规集合(Collection),如下:

集合命名空间 描述
dbname.system.namespaces 列出所有名字空间。
dbname.system.indexes 列出所有索引。
dbname.system.profile 包含数据库概要(profile)信息。
dbname.system.users 列出所有可访问数据库的用户。
dbname.local.sources 包含复制对端(slave)的服务器信息和状态。

于修改系统集结中之目标来如下限制。

在{{system.indexes}}插入数据,可以创造索引。但除此之外该表信息是不可变的(特殊之drop
index命令将自动更新相关消息)。

{{system.users}}是不过改的。 {{system.profile}}是可去的。


bifa365必发MongoDB 数据类型

下表为MongoDB中常用的几乎栽多少列。

数据类型 描述
String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。  
Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 
Boolean 布尔值。用于存储布尔值(真/假)。 
Double 双精度浮点值。用于存储浮点值。 
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 
Arrays 用于将数组或列表或多个值存储为一个键。 
Timestamp 时间戳。记录文档修改或添加的具体时间。 
Object 用于内嵌文档。 
Null 用于创建空值。 
Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 
Object ID 对象 ID。用于创建文档的 ID。 
Binary Data 二进制数据。用于存储二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。

发表评论

电子邮件地址不会被公开。 必填项已用*标注