《MongoDB 权威指南》 学习总结

书目   http://baike.baidu.com/link?url=DVJuvrT4ssbM8V1pKcoRx5H1CwRRCynC6_Ix6YWIrr414opislflpPuY9hRDO4g-Fr5vL9AfbsvamwaGpvN8G_

 

全书翻过+看过博文(http://www.cnblogs.com/huangxincheng/category/355399.html)+自己动手安装过mongoDB写过demo代码(Windows,c#)

总结如下:

  1. 语言不错,看着很舒服。像是自然语言、javascript、json的感觉 >db.food.find({"Age":27}),find,insert,update等不错
  2. 文档(记录,行)=》集合(表)=》数据库
  3. 总体来说非常容易拓展,不需要向关系型数据库(sqlserver)一样提前定义好表结构(各种列名、类型),可以直接插入Person {No,Name,Sex....}。
  4. 还可以直接写入复杂类型Person.Adress{Provice,City,Street,Detail....},这样就不必像之前关系型数据库一样纠结于多表外键连接,特麻烦。MongoDB这点,我很是喜欢。这点也保证了联查速度非常快,而且简单。
  5. 使用程序语言操纵MongoDB时需要根据语言安装对应的驱动。如果使用c#语言,那使用驱动(https://github.com/mongodb/mongo-csharp-driver/downloads)后就很简单,类似Linq,EF的感觉,不必纠结于CRUD的具体语句,只要GetCollection<T>,Update即可。当然这只是我的第一编码印象,也许细节上还是蛮复杂的。
  6. 分片,用于均衡数据,减少每台机器上的数据、以此减少访问量,用多机器来有效扩展、而不必购买大机器
  7. 主备复制用于保证数据的多备份、冗余防止意外发生,不过还是需要手动切换主备更改。副本集,用于自动化的容灾集群,有仲裁机器、副本、活跃、心跳判断等机制,自动的保证一个集群中必有一个可用。    这两者都不需程序控制,对程序透明、黑盒,无需关心。这样对程序员-DBA有好处
  8. 索引。类似关系型数据库
  9. 聚合函数  count,group。类似关系型数据库
  10. 文档的物理存储实体是Binary Json(BJSON)类型,轻量化的类似json文本,能将所有文档表示为字符串。
  11. 基本数据类型:数字、字符串、日期、数组、内嵌文档(子文档,上述提到的功能点4)

总体上MongoDB已经不是关系型数据库,在大数据处理、复杂数据处理、均衡分摊处理上很有优势。

官网  http://www.mongodb.org/downloads

学完了才发现,技术虽然在发展,但是基本概念、思想思路还是类似的。了解关系型DB、Javascript、Json 后再看 MongoDB,明显轻松、易于理解,技术的发展既有一脉相承、又有变化、解决旧有的矛盾提出新的方案。

posted on 2016-02-15 21:38  nlh774  阅读(185)  评论(0编辑  收藏  举报