MongoDB ObjectId
ObjectId 是一个12字节 BSON 类型数据; [^测试脚注]
MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 服务器上同步自动增加主键值既费力还费时
-
[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数据库在内部使用,用于保存分片的相关信息。