1. 与传统RMDBS的对比
MongoDB作为一款NOSQL数据库,相比传统的关系型数据库如MySQL的一大特点就是数据模型上的无模式定义,在获取灵活数据模型的同事,又在特定的环境中表现出绝佳的性能。学习MongoDB从数据的结构定义上入手可与MySQL做对比如下:

mysql  ---> mongodb 
  database --> database 
table -->  
collections 
documents 
columns -->  
  fields  
indexs --> indexs

其中MongoDB中的cursors指查询时返回的一个结果集的指针而非结果,利用该指针可以在结果集的基础上做一些操作如:排序、计数、跨行查找等,无需把真实数据拖下来而是在真实数据上操作。通过 cursor 来操作,读操作会被延迟到需要实际数据的时候才会执行。

在MongoDB中db由collections组成,collections由documents组成并且可被index提高查找和排序的性能,documents由fields组成。

2. 数据操作

a. 查询,利用选择器(一个条件判断的json对象,类似于mysql中的where判断) 
  find 
  count
  remove 
   b. 更新  
update: $set、 
upsert、 
multi 
 c. cursor: 
  排序 sort() 
 计数 count() 
  分页 skip().limit()

3. 数据建模

no joins:数据表链接(join)意味着无法支持很好的水平扩展 
数组和内嵌文档:支持数组作为文档的基本对象,在处理多对一和多对多的情况下非常方便。 
  比如一个人属于多个部门,则只需要部分字段存储成数组形式即可。 
反规格化:解决对性能敏感的问题或是需要做快照的数据  
约束:一个独立文档的大小当前被限制在 16MB 
集合设计:把内容划分为多个集合还是在一个集合中内嵌多个文档,取决于你想再一次查询中获取什么内容


参考资料:《the-little-mongodb-book》--karlseguin