1 知识回顾
关系数据库中几个名词,database, table, row ,column,index ,对应到nosql mongo 中 database,collection,document,field,index, 所有除了不能join 外,大部分概念是一样的。存储的数据结构不一样。关系数据库对字段类型,数据格式有要求,mongo 可存储的数据结构多样化。 需要注意的是mongo 中的 id 构成。
Mongo ObjectId 规则
ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:
前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时
接下来的 3 个字节是机器标识码
紧接的两个字节由进程 id 组成 PID
最后三个字节是随机数
id 中包含了时间戳,所有可以通过id 来获取记录时间。
mongo 中插入数据后,系统会生成唯一主键id, 如果不想使用系统生成的id ,可以在插入文档数据时,增加_id 字段,安装自定义的策略进行。此时会采用自定义id。
2 数据库创建
传统关系数据库采用create database dbname, 而mongo 则使用 use , use dbname ,当 db 不存在时,则创建,存在时则切换到db. 因为mongo 默认连接使用的库是test 库.
可以使用 show dbs 或 db 进行查看数据库
需要注意的是,当创建一个库后,如果没有插入数据,则当前库是不显示的,看不到库的存在,在admin 库下,可以看到所有的库。
插入数据时报错,原因是采用了auth 方式,需要先给当前库建立用户。