lakers009 发表于 2015-7-10 09:55:47

Step by Step ——Mongodb学习(二)基本概念

  
  
  
   文档
  
  1)文档是MongoDB中数据的基本单元,类似与关系型数据库中的行。
  
  2)集合可以被看做是没有模式的表。
  
  3)MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。
  
  4)每一个文档都有一个特殊的键“_id”,它在文档所处的集合中是唯一的。
  
  文档是MongoDB的核心概念。多个键及其关联的值有序地放置在一起便是文档。在javascript中文档的表示方法如下:
  
  {"greeting":"Hello,world"},稍微复杂一点的便如:{"greeting":"hello","foo":3}。关于文档我们需要注意:
  
  

[*]文档中的键/值对是有序的,即:{"foo":3",greeting":"hello"}与{"greeting":"hello","foo":3}是不同的。
  

[*]文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型,甚至可以是整个嵌入的文档。


[*]  文档中的键是字符串,除了少数的情况,键可以使用任意UTF-8字符。
  键不能含有\0.这个字符用例表示键的结尾。
  .和$有特别的意义,只有在特定环境下才能使用。
  以“_”开头的键是保留的。
[*]  
  
  
  
  
  
  
  
  
  
  
  
  
  集合   
  
  
  
  
  
  
  集合就是一组文档,并且集合是无模式的,这意味着一个集合里面的文档可以是格式各样的。但是我们需要注意,虽然我们可以将格式各样的文档放在一个集合中,但是对于后期的维护以及程序开发将变得很艰难。故我们需要将不同的文档放入不同的集合中。同时将同种类型的文档放在一个集合中,数据会更集中。另外,在创建索引的时候,文档会有附件的结构。索引是按照集合来定义的,把同种类型的文档放入同一个集合里面,可以使索引更加有效。
  
  
  命名

[*]  集合名不能是空字符串


[*]  集合名不能含有\0字符,此字符表示集合名的结尾


[*]  集合名不能以"system."开头,这是系统集合的保留前缀。
[*]  用户创建的集合名字不能含有保留字符"$"
  数据库
  MongoDB中多个文档组成集合,多个集合构成了数据库。一个MongoDB可以承载多个数据库,他们之间可视为完全独立的。数据库命名注意:

[*]不能是空字符串(" ")


[*]不能含有空格、.、$、/、\和\0


[*]全部是小写
[*]  最多64个字节
  另外有一些数据库名是系统保留的:admin(相当于"root"数据库)、local(此数据永远不会被复制,用例存储限于本地单台服务器的任意结合)、config。把数据库的名字放到集合名前面,得到的就是集合的完全限定名,成为命名空间。
  
  
  
  
  
页: [1]
查看完整版本: Step by Step ——Mongodb学习(二)基本概念