MongoDBTips
最新在读MongoDB的资料,记录了一些入门须知,供大家参考,
摘自《MongoDB Basics》
Collection
- Collection的容量默认是可变的,但是也可以设置为固定大小的,当达到最大值后,新数据会覆盖旧的数据
- 取名可以包含字母和数字,但是$不能用,也不能是空字符串,不能以”system.“开头。
- 名字要简短,9个字符以内最佳。虽然不超过118个字符都可以,但不建议取太长的名字,对性能会有影响。
Namespace
Namespace这个概念我不去看书的话也不会注意到的,有下面几点需要知道:
- 一个数据库默认最大可包含24000个Namespace
- 每个Collection至少包含两个Namespace,一个是Collection的名字,一个是_id字段的索引
- 每建立一个索引就会消耗一个Namespace的可用数
- 所以理论上一个Database最多可以包含12000个Collection
- Namespace的数量限制可以通过mongod命令的nssize参数调整
Document
Document是由一些key-value键值对组成的。
- key是字符串类型
- value可以是很多类型,甚至是二进制数据
value的类型
- string
- integer
- boolean
- double
- Min/Max keys
- arrays
- timestamp
- object
- null
- symbol
- Date
- ObjectID
- Binary data
- Regular expression
- JavaScript Code
Embedding vs. Referencing
Remember that every reference requires another query in database.
使用MongoDB的原则就是尽量把相关联的数据组织到一个Document里面,这样查询更加高效。
_id
document默认会自动生成一个_id主键字段,无需显示申明
但是也可以手动维护该字段的值:通过该方法可以手动设置主键值,ObjectId(长度为24的16进制字符串)
Index
- 每个Collection最多可以建立64个索引
- 所有的索引信息都存储在system.indexes这个Collection里面,可以通过db.system.indexes.find()查找
- 查询某个Collection的索引:db.collection.getIndexes()