MongoDB学习(二)之概念理解

本文介绍了MongoDB数据库的基础概念,包括数据库、文档、集合、元数据及数据类型的详细解释,帮助读者快速理解MongoDB的基本组成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①数据库(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)不需要设置相同的字段且相同字段不需要相同的数据类型。

    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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值