【MongoDB学习笔记五】MongoDB概述
MongoDB  /  houtizong 发布于 3年前   313
MongoDB是面向文档的NoSQL数据库,尽量业界还对MongoDB存在一些质疑的声音,比如性能尤其是查询性能、数据一致性的支持没有想象的那么好,但是MongoDB用户群确实已经够多。MongoDB的亮点不在于它的性能,而是它处理非结构化数据的能力以及内置对分布式的支持(复制、分片达到的高可用、高可伸缩),同时它提供的近似于SQL的查询能力,也是在做NoSQL技术选型时,考虑的一个重要因素。MongoDB的目前实现已经非常接近了关系型数据库提供的特性(除了事务性支持)
SQL,结构化数据查询语言,如同SQL的名称所指明的,关系型数据库处理的是结构化数据。何为结构化数据?从关系型数据的角度上通俗的说,就是可以把数据分解成多个关系(或者称为表,表的每一列都是单一的数据值),这就要求存放在一个关系中的数据具有确定的字段名称,字段类型以及把所有可能的字段都要完全一样。但是,现实中的数据很多并不是结构化的,比如调查表,对不同的人进行调查,它的问卷题目可能完全不一样。对调查表进行建模,很难使用一个关系来准确的进行描述。对于SQL来说,很有可能需要针对不同种类的调查对象创建不同的表,这种建模方式,不必多说,太ugly了。
对于MongoDB,它是无模式的。无模式指的是集合(类比SQL的表)中的文档(类比SQL的记录行)不要求包含一致的字段(类比SQL表的列或者域),每个字段也不要求SQL限定的值的单一性。只要语义上符合逻辑,任意结构的数据都可以保存为一个文档,然后放到同一个集合中。并且,即使某个字段有些文档存在,有些文档不存在,依然可以对这个字段建立索引。
这样,即使字段完全不同的两个调查表也可以放到同一个集合中。
文档更新操作有可能是替换操作(用更新操作提供的文档来替换旧文档),也有可能真正的更新操作(更新操作提供的文档中只包含要更新的字段,更新时按照这些字段去更新旧文档对应的文档)。那么MongoDB的文档更新操作究竟是哪一个呢?
答:不带修改器$set的update操作是替换,使用了$set的update操作是对指定的键进行操作。详见http://bit1129.iteye.com/blog/2145090
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接