MongoDBTips

最新在读MongoDB的资料,记录了一些入门须知,供大家参考,
摘自《MongoDB Basics》

Collection

  1. Collection的容量默认是可变的,但是也可以设置为固定大小的,当达到最大值后,新数据会覆盖旧的数据
  2. 取名可以包含字母和数字,但是$不能用,也不能是空字符串,不能以”system.“开头。
  3. 名字要简短,9个字符以内最佳。虽然不超过118个字符都可以,但不建议取太长的名字,对性能会有影响。

Namespace

Namespace这个概念我不去看书的话也不会注意到的,有下面几点需要知道:

  1. 一个数据库默认最大可包含24000个Namespace
  2. 每个Collection至少包含两个Namespace,一个是Collection的名字,一个是_id字段的索引
  3. 每建立一个索引就会消耗一个Namespace的可用数
  4. 所以理论上一个Database最多可以包含12000个Collection
  5. 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()
加载评论框需要科学上网