美文网首页我爱编程
MongDB特性总结

MongDB特性总结

作者: 木驴的天空 | 来源:发表于2018-04-30 01:20 被阅读47次

简介

MongoDB是一个面向文档的非关系型数据库,强大、灵活、易于扩展。关系型数据库如MySQL需要预先定义模式(predefined schema),但是MongoDB没有固定的模式,取决于用户。当然没有哪个用户糊涂到在同一个集合中存储不同模式的文档,否则给查询造成不必要的麻烦。

易于扩展

MongoDB的设计采用横向扩展,能自动处理跨集群的数据和负载,自动重新分配文档,以及将用户请求路由到正确的机器上。

特性

  • 支持索引,而且所有实现非常类似于MySQL,提供唯一索引(对于不重复数据来说很有优势,但是对于null值只能存在一个)、稀疏索引(忽略null的唯一索引,非常有用的特性)、复合索引(即联合索引)、覆盖索引、地理空间索引(支持GeoJSON格式存储地理位置、计算地理间距、查询最近的距离等)、TTL索引(具有生命周期的索引,MongoDB每分钟对TTL索引清理一次,这是相当不不错的特性)、全文索引(如果想在文档中搜索文本的话,你肯定用得着,当然很有可能此时你必须考虑是否该使用搜索引擎了)。
  • GridFS大文件存储。GridFS是MongoDB专门用来存储大型二进制文件的,它是一个独立的存储系统,类似于Hbase。GridFS自动故障转移、平衡副本等,文件存储的集中度比较高,MongoDB是以2G为单位分配数据文件的。缺点也是有的,性能比较低,比直接使用文件系统还差。文档修改只能删除后重建。GridFS适合不经常修改的大文件存储。当然这个适合可以考虑其他如Hbase之类的。
  • 聚合。聚合可以说是MongoDB非常耀眼的功能。它可以完成很多复杂的统计功能。相比一些NoSQL,如Redis。这方面强大太多(有点类似于ElasticSearch的强大的聚集功能,可惜是ElasticSearch是近实时的,这是硬伤)。下面重点谈谈强大聚合功能:

聚合

筛选(filtering)

$match操作符用于对集合进行筛选,过滤掉不需要的查询,当然这一步你可以直借使用条件查询过滤。当然两者配合最好了。

投射(project)

$project操作符更加强大。你可以进行:
1.  字段提取(只需要部分字段就满足需求了)。
2.  字段重命名(SQL中AS)、数学表达式($add、$substract、$multiply、$divide、$mod等)、日期表达式(提取日期:$year、$month、$week、$dayOfMonth、$dayOfWeek、$dayOfYear、$hour、$minute、$second等)。
3. 字符串操作(子串、拼接、大小写转换等)。
4. 逻辑表达式。

分组

1. 分组group(SQL中的group by)。分组就是归类的意思了。就是按类别来统计数据,这个太常用了。分组求和、分组求均值、分组求极值(最大、最小)
2. 数组操作($addToSet(不可重复)、$push(可重复))。
3. 分拆数组($unwind分拆数组的每个值成为单独的文档)。

排序

排序$sort

分页

分页($skip、$limit,但是$skip性能不咋地,使用游标进行懒加载比较好)

其他

1. MapReduce可以完成更复杂的任务,因为它可以直接执行javascript脚本,不过性能必然不咋地,离线处理数据还行。
2. 完成器(finalize)。每组结果传给给客户端之前调用一次。

相关文章

  • MongDB特性总结

    简介 MongoDB是一个面向文档的非关系型数据库,强大、灵活、易于扩展。关系型数据库如MySQL需要预先定义模式...

  • PHP7之Mongodb的开发详解

    1.mongdb的连接 2.mongdb的添加 3.mongdb的删除 4.mongdb的修改 5.mongdb的...

  • 2019-04-15 mongdb和mysql的区别 mongd

    mongdb 和 mysql的应用场景,为什么mongdb有哪些优势mongb优点:mongdb 适合于热数据的读...

  • MongoDB基础

    MongoDB简介 MongDB是一个高性能,开源,无模式的文档型NosQL数据库。 主要功能特性: 1.文件存储...

  • 数据库资源

    oracle mysql mongdb

  • MongoDB

    mongodb和python交互 1.mongdb和python交互的模块: pymongo提供了mongdb和p...

  • 【mongDB】mongDB高手课

    OLTP与OLAP的关系是什么? https://www.zhihu.com/question/24110442/...

  • iOS 12正式版新特性总结

    iOS 12正式版新特性总结 iOS 12正式版新特性总结

  • mongodb——1

    1.Mongdb (1)MAC 启动 $ mongdb(2)Linux 启动 (2)使用 1.查看数据库$ sho...

  • MongDB

    MongoDB 是一款开源的文档数据库,并且是业内领先的 NoSQL 数据库,用 C++ 编写而成。MongoDB...

网友评论

    本文标题:MongDB特性总结

    本文链接:https://www.haomeiwen.com/subject/jmaalftx.html