MongoDB学习(二)之概念理解

①数据库(database)

  1)一个mongodb有多个数据库,默认数据库为'db'(存储在data目录下)。

  2)MongoDB的单个实例可以包括多个独立的数据库,每个数据库有自己的集合和权限,不同数据库可以放不同的文件。

  3)数据库名规则(UTF-8字符串):全部小写、最多64位、不包含‘’(空格)、$、/、\和\0(空字符)

  4)保留数据库:

              1、admin

                        (1)权限角度看,该数据库为“root”数据库,一个用户添加到该数据库中,该用户自动继承所有数据库的权限。

                        (2)某些命令只能在该数据库运行(比如:关闭服务器、列出所有的数据库)。

              2、local:用于存储限于本地单台服务器的集合(这个数据库永远不会被复制)。

              3、config:当MongoDB用于分片设置时,config数据库用于保存分片的相关信息。

②文档(document)------------------类似于关系型数据库的一行数据

    1)是一组key-value对(键值对)。

    2)不需要设置相同的字段且相同字段不需要相同的数据类型。

扫描二维码关注公众号,回复: 2619842 查看本文章

    3)例子:

{"name":"wjwlh","year":18,"height":195}

   4)表联合就是嵌入文档。

   5)注意点:

            1、文档中的键值对是有序的。

            2、对类型和大小写敏感。

            3、文档中的value可以为字符串等多种类型的数据。

            4、文档中的key不能重复,文档中的key是字符串类型/任意UTF-8字符(少数情况下)。

   6)文档键命名规范:

            1、key不能包含"\0"(空字符)------该字符表示键的结尾。

            2、.和$在特定情况下使用。

            3、_开头的键是保留的

③集合(collection)

    1)是文档组(多个文档的集合,类似于关系型数据库中的表格)。

    2)例:  第一个文档插入时,集合就会被创建。

{"name":"wjwlh","year":18,"height":195}
{"name":"lj","year":16,"height":165}
{"name":"hxj","year":19,"height":175}

    3)集合名命名规范(三不能):不能为“”,不能含\0字符和保留字符,不能以"System."开头。

    4)示例:

db.col.findTow()

     5)Capped collections(固定大小的collection)

               1、会自动维护对象的插入顺序,并且会按照插入顺序进行过期。

               2、必须显示的创建一个capped collection(指定大小(包含了数据库的头信息),单位字节)

               3、示例:

//生成一个10000字节的大小、按序的Capped collections集合
db.createCollection("firstColl",{capped:true,size:10000})

               4、capped collection能够添加对象、能进行更新(不会增加存储空间,增加的话,更新失败),不允许删除。drop()删除collection的所有行,删除之后必须重新创建这个collection。

 ④元数据---------------描述数据库的信息

     1)命名空间dbname.system.*包含的系统信息:

集合命名空间

描述

dbname.system.namespaces

列出所有命名空间

dbname.system.indexes

列出所有索引

dbname.system.profile

包含数据库概要(profile)信息

dbname.system.users

列出所有可访问数据库的用户

dbname.local.sources

包含复制对端(slave)的服务器信息和状态

   2)注意事项:(1){{system.indexes}}插入数据,可以创建索引(其它不可变)。

                           (2){{system.users}}是可修改的。

                           (3){{system.profile}}是可删除的。

⑤数据类型

数据类型

描述

String

字符串(UTF-8编码的字符串菜合法)

Integer

整型,保存数值(32位或64位)

Boolean

布尔值(true/false)

Double

双精度浮点数

Min/Max keys

将值于BSON(二进制的JSON)元素的最低值和最高值进行比较

Arrays

保存数组或列表或多个值到一个键

Timestamp

时间戳(记录某个操作的具体时间)

Object

内嵌文档

Null

创建空值

Symbol

符号(基本等同于字符串,用于采用特殊符号类型的语言)

Date

日期时间

Object ID

对象 ID(创建文档的ID)

Binary Data

二进制数据(保存二进制数据)

Code

代码类型(保存JavaScript代码的)

Regular expression

正则表达式类型(保存正则表达式)

猜你喜欢

转载自blog.csdn.net/tree_ifconfig/article/details/81364229