玩转MongoDB】的更多相关文章

背景 在分布式系统中,我们有多个web app,这些web app可能分别部署在不同的物理服务器上,并且有各自的日志输出.当生产问题来临时,很多时候都需要去各个日志文件中查找可能的异常,相当耗费人力.日志存储多以文本文件形式存在,当有需求需要对日志进行分析挖掘时,这个处理起来也是诸多不便,而且效率低下. 为了方便对这些日志进行统一管理和分析,我们可以将日志统一输出到指定的数据库系统中,再由日志分析系统去管理.由于这里是mongodb的篇章,所以主观上以mongodb来做日志数据存储:客观上,一是…
作者:HelloGitHub-*小鱼干 工欲善其事必先利其器,想要玩溜数据库,不妨去试试本文安利的 5 款开源的数据库管理工具.除了流行的 SQL 类数据库--MySQL.PostgreSQL 之外,文档型数据库 MongoDB.内存数据库 Redis 的管理工具也在列表之中. MongoDB 图形化的管理工具:Mongood GitHub Star 数 :222 Mongood 是一个 MongoDB 图形化的管理工具. 特性: 基于微软 Fluent UI,支持自动黑暗模式 支持完整的 Mo…
MongoDB提供了MapReduce的聚合工具来实现任意复杂的逻辑,它非常强大,非常灵活.MapReduce使用JavaScript作为“查询语言”,能够在多台服务器之间并行执行.它会将一个大问题拆分为多个小问题,将各个小问题发送到不同的机器上,每台机器只负责完成一部分工作.所有机器都完成时,再将这些零碎的解决方案合并为一个完整的解决方案. 在一般情况下,MapReduce操作有2个阶段:第一个阶段是映射(map)阶段,处理每一个符合要求的文档(即每个符合要求的文档都执行一次map的方法),然…
本篇博文主要介绍MongoDB中一些常用的特殊索引类型,主要包括: 用于简单字符串搜索的全文本索引: 用于球体空间(2dsphere)和二维平面(2d)的地理空间索引. 一.全文索引 MongoDB有一个特殊的索引用在文档中搜索文本,之前的博客都是用精确匹配来查询字符串,这些技术有一定的限制.在搜索大块文本的速度非常慢,而且无法处理自然语言礼节的问题.全文本索引使用的是“倒排索引”的思想来做的,和当前非常开源的lucene(全文检索,Apacle基金会下的开源项目)项目是一样的思想来做的.使用全…
简介: MongoDB是一个开源的文档数据库,支持高性能.高可用性.自动缩放. 在MongoDB中,一条记录就是一个文档,是由字段和值对构成一个数据结构,类似于JSON对象.字段的值可以包括其他文档.数组和文档的数组. 数据结构如下所示: mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系型数据库中的“表”,“文档”对应“行”. 下载mongodb和robomongo: 到mongo官网下载mongodb软件.mongodb支持Windows.Linux.OSX.Solari…
数据库索引与书籍的索引类似,有了索引就不需要翻整本书,数据库可以直接在索引中查找,在索引中找到条目后,就可以直接跳到目标文档的位置,这可以让查找的速度提高几个数量级. 一.创建索引 我们在person这个集合的age键上创建一个索引,比较一下创建索引前后,一个查询的语句的性能区别. 创建索引:db.person.ensureIndex({"age":1}).这里我们使用了ensureIndex在age上建立了索引.“1”:表示按照age进行升序,“-1”:表示按照age进行降序. 没有…
mongodb性能分析方法:explain() 为了演示的效果,我们先来创建一个有200万个文档的记录.(我自己的电脑耗了15分钟左右插入完成.如果你想插更多的文档也没问题,只要有耐心等就可以了.) for(var i=0;i<2000000;i++){ db.person.insert({"name":"ryan"+i,"age":i}); } MongoDB 3.0之后,explain的返回与使用方法与之前版本有了很大的变化,介于3.0…
插入: 使用insert或save方法想目标集合插入一个文档: db.person.insert({"name":"ryan","age":30}); 使用batchInsert方法实现批量插入,它与insert方法非常类似,只是它接受的是一个文档数组作为参数.一次发送数十,数百乃至数千个文档会明显提高插入的速度. db.person.batchInsert([{"name":"ryan","ag…
说明: 主要功能:对mongodb的集合做增删改查. 项目的运行环境:tomcat6.jdk8. 所用技术:jsp/servlet.前端bootstrap. mongodb:personmap. mongodb工具类: 定义一个MongoDBUtil的枚举类,枚举类中定义一个instance实例. MongoDB工具类 Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够.    注意Mongo已经实现了连接池,并且是线程安全的.    设计为单例模式…
常用基本数据类型: null null用于表示空值或者不存在的字段: {"data":null} 布尔型 布尔类型只有两个值,true和false: {"data":true}.{"data":false} 字符串 字符串类型的数据是由UTF-8字符组成: {"data":"pingan"} 正则表达式 查询时,使用正则表达式作为限定条件,语法和javascript的正则表达式一样: {"data…