FirstProject

FirstProject Code here, 😜

View project on GitHub

MongoDB ObjectId

ObjectId 是一个12字节 BSON 类型数据; [^测试脚注]

MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 服务器上同步自动增加主键值既费力还费时

img

  • [in] newObjectId = ObjectId()
      
    [out] ObjectId("5349b4ddd2781d08c09890f3")
    
  • ObjectId的结构: 60544a06c8741386c926f8d8
60544a06 c87413 86c9 26f8d8
时间戳 机器标识码 进程id(PID) 随机数
  • MongoDB中存储的文档必须有一个”_id”键。这个键的值可以是任何类型的,默认是个ObjectId对象。

概念(与关系型数据库比较)

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
RDBMS MongoDB
数据库 数据库
表格 集合
文档
字段
表联合 嵌入文档
主键 主键 (MongoDB 提供了 key 为 _id )
数据库服务和客户端  
Mysqld/Oracle mongod
mysql/sqlplus mongo

特殊作用数据库

  • admin: 从权限的角度来看,这是”root”数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。