MongoDB学习-入门

基本概念

        集合(collection)类似于关系型数据库的表,它是无模式的。

        文档(doucument)是MongoDB中数据的基本单元,类似于关系型数据库中的行。

        虽然集合是无模式的,但是仍然需要使用多个集合,原因如下:

  • 把各种各样的文档都混在一个集合里面,不利于整理。
  • 在一个集合里查询特定类型的文档在速度上很不划算,分开做多个集合要快得多。
  • 把同种类型的文档放在一个集合里,这样数据在磁盘上的存储会更加集中,访问速度更快。‘
  • 把同种类型的文档放在一个集合里,方便建立高效的索引。

数据类型

  • null

null用于表示空值或者不存在的字段

  • 布尔(略)
  • 32位整数

由于JavaScript仅支持64位浮点数,所以JavaScript shell不支持32位整数,会被自动转换。

  • 64位整数

shell不支持此类型,会使用一个特殊的内嵌文档来显示64位整数,如

{
   "_id":ObjectId("4c0beecfd096a2580fe6fa09"),
   "myInteger":{
       "floatApprox":92233720368547766000,
       "top":2147483647,
       "bottom":4294967295
    }
}

  • 64位浮点数(略)
  • 字符串

UTF-8字符串

  • 符号

shell不支持,自动转换成字符串

  • 对象id
  • 日期

日期类型存储的是从标准纪元开始的毫秒数,不存储时区。

  • 正则表达式

文档中可以包含JavaScript正则表达式

  • 代码

文档中可以包含JavaScript代码

  • 数组

值的集合或者列表可以表示成数组

  • 内嵌文档

文档可以包含别的文档,也可以作为值嵌入到父文档中。

_id和ObjectId

       ObjectId是“_id”的默认类型。ObjectId使用12字节的存储空间,每个字节两位十六进制数字,是一个24位的字符串。12字节按照如下方式生成:

  • 前4个字节是从标准纪元开始的时间戳,单位为秒。
  • 随后3个字节是所在主机的唯一标识符,通常是机器主机名的散列值。
  • 接下来2个字节是产生ObjectId所在的进程标识符
  • 最后3个字节是自动增加的计数器



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值