MongoDB的学习(2)

MongoDB的结构

MongoDB的组成结构如下:

数据库包括集合,集合包括文档,文档包含一个或者多个键值对。

数据库:

一个MongoDB的服务器实例可以承载多个数据库,而且数据库之间是相互独立的。

数据库的命名应该符合文件的命名。

MongoDB有一些自带的数据库:

  1. admin:超级管理员的数据库,添加用户权限,执行一些特定的服务端命令
  2. local:不能被复制,用来存储限于本地单台服务器的任意集合
  3. config:用于分片设置时,相关信息的存储

集合:

集合就是一组文档:相当于mysql中的一个表

集合的特点是:无模式,不需要设计结构,只需要满足文档的存储格式就可以存储,及时它们的键名不同,非常灵活。

命名:正常的命名即可,不能是“”,不能含\0,不能以“system.”开头(系统保留),不能含有保留字符$

固定集合:

MongoDB的固定集合(Capped collections)是性能出色且有着固定大小的集合,如果空间不足,最早的文档将会被删除,为新的文档腾出地方。

Capped的属性特点

  1. 插入速度极快
  2. 按照插入顺序查询输出速度极快
  3. 能够在插入最新数据时,淘汰最早的数据
  4. 默认查询情况,按照插入返回
  5. 更新不能超过总限额
  6. 不允许删除
  7. 在32位的机器上最大值为482.5M,64位上受系统文件的限制

Capped的应用场景

  • 存储日志信息
  • 缓存一些少量的文档

文档:

文档是MongoDB的基本单位。键值对按照BSON格式存入MongoDB就是一个文档。

文档的特点:

  1. 都有一个特殊的键“_id”,它是唯一的
  2. 键值对是有序的
  3. 值可以是字符串,数值,日期
  4. 区分大小写
  5. 键值对是唯一的

数据类型:

基本数据类型:

  • null
  • 布尔
  • 32位整数
  • 64位整数
  • 字符串
  • 对象
  • 日期
  • 正则
  • 代码
  • 二进制
  • 未定义:undefined
  • 数组
  • 内嵌文档
  • Decimall28

数字类型:

MongoDB中使用数字类型需要注意精度和极限值的问题,特别是金额等敏感性数字需要使用128位的Decimal类型才不会导致精度丢失而造成数值变化。

日期类型:

MongoDB中保存的日期类型是ISODate,默认情况下MongoDB中存储的是标准的时间。有一些语言的驱动可能会自动加上8个小时。

数组类型:

MongoDB中可以存入JSON数组。

内嵌文档:

把整个MongoDB文档作为另一个文档中键的值称为内嵌文档。

自动关联的内嵌文档DBRef:

按照规范格式来存储关联id,MongoDB就会自动实现关联。

_id键和ObjectId:

_id是MongoDB中的唯一标识,ObjectId是它的默认格式。

ObjectId使用12个字节的存储空间,显示出来是一个24位的字符串,他可以保证部署在多个机器上的_id不重复。

ObjectId的创建方式:0-3:时间戳,4-6:机器,7-8:PID,9-11:计时器

二进制类型:最大不能超过16M

索引:

提高查询速率,帮助排序


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻蝶Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值