[TOC]

简介

mongodb 文档数据库,mysql & mongodb 使用比较广泛,其中这篇文章主要介绍一下 mongodb 的小知识

mongodb 将数据存储为文档,数据结构其实就是 kv 组成的,mongodb 文档类似 json,为 bson 格式

mysql 库 <=> mongodb 库

mysql table <=> mongodb collection

mysql 数据行 <=> mongodb document 文档

mongodb学习初识_mongodb

bson 格式

支持的数据类型

mongodb学习初识_mysql_02

ObjectId

mongodb 中的每个文档中都会有个 \_id 字段,它是主键,类型为 ObjectID 类型 ObjectID 类型长 12 字节,即 \[12]byte 类型,由几个 2-4 字节的链组成。每个链代表并指定文档身份的具体内容。以下的值构成了完整的 12 字节组合

  • 一个 4 字节的值,表示自 Unix 纪元以来的秒数
  • 一个 3 字节的机器标识符
  • 一个 2 字节的进程 ID
  • 一个 3字节的计数器,以随机值开始

因此你不需要存储创建事件,你可以通过一些函数获取时间 ObjectId(“5349b4ddd2781d08c09890f4”).getTimestamp()

mongodb 常用的查询语法

查询所有数据
db.collection_name.find()

https://www.cnblogs.com/shenyixin/p/9453742.html

几个 why 值得思考

  • mongodb 比 mysql 好在哪?
  • mongodb 为什么是 bson 不是 json 因为 bson 元素头部有一个区域用来存储元素长度,当遍历时候,如果想跳过某个文档读取会很容易,因为读取一下头部的长度,计算一下要读到哪个点即可;bson 也比 json 支持更多类型,bson 增加了 byte array 数组