0%

初识MongoDB

MySQL和MongoDB概念对比

在mongodb中基本的概念是文档、集合、数据库。

SQL术语/概念 MongoDB术语/概念 解释/说明
atabase database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接, MongoDB不支持
primary key primary key 主键, MongoDB自动将_id字段设置为主键

数据库

进入MongoDB shell

1
2
3
4
bin/mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2

查看所有的数据库

1
2
3
4
5
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mongo1-db 0.000GB

执行db命令可以显示当前数据库

1
2
> db
local

运行use命令,可以连接到一个指定的数据库。

1
2
> use mongo1-db
switched to db mongo1-db

ObjectId

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时

接下来的 3 个字节是机器标识码

紧接的两个字节由进程 id 组成 PID

最后三个字节是随机数

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象

由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

1
2
3
4
5
6
> var newObj = ObjectId()
> newObj.getTimestamp()
ISODate("2019-02-06T16:01:21Z")

> newObj.str
5c5b04d1dd377f0cd58338aa