编程 || mongoDB

非关系数据库诞生的缘由。

其实可以类比Java和Python,一种有着严格的类型控制,所有变量的声明都要说明是int还是String还是其他啥啥。一种则是所有变量都可以用var来声明,如果是单兵作战来开发的话,写起来就会比较容易。

再类比一个团队的沟通,一种是大家都有明确的术语,那么新人过来先熟悉术语,在讨论的时候就不会蒙圈。另一种是术语是不明确的,但大家极有默契,眼神就能沟通。

其实对于一个长期的系统来说,个人觉得python,mongo,眼神交流,还是少用为好。当然了,就算用java,mysql,术语交流,到了一定程度也免不了一团乱,也没法长期维护。所有都是tradeoff,都是在动态规划。

那mongo解决啥问题?

首先作为数据库来说,所有的增删改查都是具备的,不然就不叫事务了。
并且mongoDB4.0开始,也支持多文档事务。
有了这些前置的保底的基础,那就可以用mongoDB做些复杂的业务了。

那mongo可感知的特点有两个。
第一是它是不需要预先定义表字段。这就是它的非关系型的特点。每次insert数据的时候,如果这个表中没有insert数据中存在的字段,当场会创建。
第二是它是对象结构的。其实什么json啊bson啊文档啊,这些东西统统都是对象。早年学的很累,觉得一大堆概念,其实就一回事。技术就是喜欢取些乱七八糟的名字。同理mongo的collection就是mysql的table。mongo的collection中的每一行,都是对象型的bson,bson可以有层级。

那要不要用mongo,个人依然觉得在一个大型系统中尽量避免,或者像是用mysql一样比较严格地去先知mongo的用法,因为比起灵活以外,对于大型系统来说,我们更要知道我们正在做什么。但是,当限制灵活度的时候,不就退化成了mysql了吗。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,039评论 2 89
  • @TOC[%E7%9B%AE%E5%BD%95] 文章作者公众号bigsai,已收录在回车课堂[https://k...
    bigsai阅读 796评论 0 0
  • 1 MongoDB中的基本概念及原理 1.1 MongoDB介绍 官网地址:https://www.mongodb...
    MiniSoulBigBang阅读 553评论 0 0
  • 1,关系型数据库与Mongodb的术语类比 1.1,术语对比介绍 1.2,术语补充说明 集合(collection...
    红薯爱帅阅读 240评论 0 2
  • MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源非关系数据库系统(NoSQL)...
    苟且_7c59阅读 281评论 0 0