MongoDB 基本概念

栏目: 数据库 · 发布时间: 5年前

内容简介:一个MongoDB中可以建立多个数据库,这些数据库是相互独立的,有自己的集合和权限。不同的数据库使用不同的文件存储(不存储在一个文件中)。MongoDB默认有4个数据库:数据库名要全部小写。

MongoDB和关系型数据库的对应关系

关系数据库 MongoDB
数据库   database 数据库   database
表格  table 集合  collection
行  row 文档   document
列  column 字段  field
索引  index 索引  index
表联合  table  joins 嵌入文档
主键  primary  key 主键  primary  key 。MongoDB 默认主键为 _id

关系数据库示例:

id name age score
1 张三 20 90
2 李四 21 95

MongoDB对应的:

{
    "_id":ObjectId(.......),
    "name":"张三",
    "age":20,
    "score":90    
}
{
    "_id":ObjectId(.......),
    "name":"李四",
    "age":21,
    "score":95   
}

数据库(database)

一个 MongoDB 中可以建立多个数据库,这些数据库是相互独立的,有自己的集合和权限。不同的数据库使用不同的文件存储(不存储在一个文件中)。

MongoDB默认有4个数据库:

  • admin : 从权限的角度来看,这是"root"数据库。将一个用户添加到这个数据库,这个用户会自动继承所有数据库的权限。一些特定的服务器端命令也只能在这个数据库中运行,比如列出所有的数据库或者关闭服务器。
  • local:  这个数据库永远不会被复制,里面的数据都是本地的(不会复制到其他MongoDB服务器上),可以用来存储限于本地单台服务器的任意集合
  • config : 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

数据库名要全部小写。

字段(field)

即一个键值对,key必须是String类型,value可以是任意类型。

文档(document)

文档是一组键值对,用{ }表示,字段之间用逗号分隔。相当于关系数据库中的一行(一条记录)。

示例:一个文档

{

"name":"张三",

"age":20,

"score":98

}

这样写是为了方便看字段,也可以写在一起{"name":"张三","age":20,"score":98},一样的。

说明:

  • 文档中的键值对是有序的
  • 一个文档中不能有重复的key(对应关系数据库中的一条记录)
  • 以"_"开头的key是保留的,有特殊含义。

集合(collection)

集合是一组文档。集合相当于关系数据库中的表,但集合中的文档长度可不同(集合中的文档中的键值对个数可不同)、集合中文档的key可不同。

向集合中插入第一个文档时,集合会被自动创建。

示例:一个集合

{
    "name":"张三",
    "age":20
}
{
    "name":"李四",
    "age":15
}
{    
    "name":"王五",
    "age":20
}

示例:集合中的文档长度可不同

{
    "name":张三",
    "age":20
}
{
    "name":"李四"
}
{
    "name":"王五",
    "age":20,
    "score":98
}

示例:集合中文档的key不同

{
    "name":"张三",
    "age":20,
    "score":90
}
{
    "domain":"www.baidu.com",
    "ip":"127.23.45.50"
}

虽然可以这样,但集合中的文档一般是有关联的。

说明:

  • 集合名不能以"system."开头,这是为系统集合保留的前缀。
  • 用户创建的集合名字不能含有保留字符。

capped collections

普通collection没有指定空间大小,可存储无限多个文档。

capped collection是指定了空间大小的collection,这个collection的大小是有限的,超出这个大小,就不能再存储文档了。

capped,有上限的、封顶的、盖住的、包住的。

和普通 collection 不同,capped collection必须要显式创建,创建时要指定数据存储空间空间大小。

db.createCollection("mycoll", {capped:true, size:100000})   

第一个参数是集合名称,capped指定是否是capped collection,size指定这个capped collection的数据存储空间的大小,默认单位字节。

说明:

  • capped  collection能进行更新,但不能增加所用空间的大小,若增加所用空间的大小,更新就会失败 。
  • capped collection 不能删除一个文档,但可以使用 drop() 方法删除所有文档。

capped  collection有很高的性能以及队列过期的特性(过期按照插入的顺序)。

capped collection 会高性能地、自动地维护文档的插入顺序,非常适合类似记录日志的功能。

capped collection 是按照文档的插入顺序而不是使用索引确定插入位置,提高了增添数据的效率。

capped collection 是按照文档的插入顺序保存到集合中的,而这些文档在磁盘上存放位置也是按照插入顺序来保存的,所以当我们更新capped collection 中文档的时候,更新后的文档不能超过之前文档的大小,这样话就可以确保所有文档在磁盘上的位置一直保持不变。


以上所述就是小编给大家介绍的《MongoDB 基本概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

平台转型

平台转型

陈威如、王诗一、余卓轩(统筹) / 中信出版社 / 2016-1-10 / 58

《平台战略》续篇,陈威如等关于企业平台转型最新力作! 平台带来的商业革命已改写了现在及未来的企业生存规则,而这股浪潮已经从互联网行业漫延到了其他多种行业之中!如果说,过去10 年是平台商业模式在互联网行业的爆发期,那未来10 年,将是平台商业模式在传统行业转型应用上的黄金时代。 平台思维不再是互联网行业的专用词,它可以用来解构价值链,可以被运用到组织架构的设计中,更能够帮助企业升级竞争......一起来看看 《平台转型》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具