- 博客(11)
- 资源 (15)
- 收藏
- 关注
原创 MongoDB - 副本集和oplog
之前创建副本集的使用使用了大量的rs的命令,也知道了很多副本集的节点类型。rs.status()可以查看节点的配置信息,比如节点的角色,节点的更多细的配置信息等。并且我们现在项目上生产环境也是使用的副本集模式。索引更需要详细的了解副本集的特性。一、副本集1、主节点(primary) 索引客户端的写请求都只能由主节点处理,并且将所有的写操作记录到主节点的oplog(一个定...
2018-08-19 18:04:49 714
原创 MongoDB - 主从模式和副本集的创建
MongoDB与redis等都非常的相似,集群可以有主从模式(master-slaver)、副本集、副本集Arbiter(redis的哨兵模式)、以及分片模式(redis的hash槽)。所以全面的了解MongoDB还是很有必要的,从主从模式开始。一、主从模式1、主从模式使用场景 主从模式下当主节点发生异常的时候,从节点不能升级为主节点继续提供服务(即故障转移),并且需要显...
2018-08-19 15:24:05 1291
原创 MongoDB - 固定集合和TTL集合
1、固定集合 MongoDB可以创建固定长度的集合,可以设置最大的集合空间或最大的集合数。创建集合的语法如下: db.createCollection("collection-name", { option对象 }); # option都为可选对象,可选项如下:可选参数 类型 说明 capped boolean 默认为false则为正常的集合,当...
2018-08-16 23:30:37 1587
原创 MongoDB - 应用中的使用
一、范式化和反范式化 个人认为范式化和反范式化是使用MongoDB的时候最重要的因素之一,其余的因素个人认为主要的还有如下: 1、字段长度的准确的定义; 2、索引的使用(与业务关联度非常高) 3、集群的使用(主从复制、副本集、分片;主要是考虑应用的数据量和需要响应是时间要求) 但是前提条件还是在针对具体应用的时候,梳理关系,考虑应用系统的并发访问量...
2018-08-12 15:36:56 341
原创 MongoDB - MapReduce
使用MapReduce即分为map和reduce两个步骤的操作,将一个任务拆分为多个任务执行。可以并行在多个计算机上进行执行。可以认为是聚合框架的一部分,但是执行速度较慢,一般用户数据分析。但是数据分析一般会使用es或直接使用大数据的mapreduce或者直接使用spark。自己不是很清楚使用场景,后续进行研究。。。...
2018-08-12 00:42:56 162
原创 MongoDB - 聚合
一、聚合命令 1、count db.user.count({"i":{"$gt":NumberInt("5700")}}); # 根据条件查询并count 2、distinct db.runCommand({"distinct":"user","key":"age"}); # 查询user集合中不同年龄的总数,相当于gr
2018-08-12 00:29:09 1016
原创 MongoDB - 索引使用注意事项、执行计划(explain)
一、Mongo使用索引注意事项1、低效率查询 1)、$where和$exists完全不能走索引 首先$where是完全不能使用索引的,而$exists也是不可以使用稀疏索引进行查询,因为不存在的字段和值为null的存储方式是一样的,不能有效的过滤掉为null的字段。 2)、$ne取反操作效率很低 取反操作即使可以走索引也需要对全索引进行查询,否则...
2018-08-11 11:52:28 3877 1
原创 MongoDB - 索引的管理和类型
MongoDB的索引与mysql的索引大致相同,但是由于MongoDB的特有性,比如文档可能不会存在某一个字段,文档有嵌套以及数组类型,所以也会有些许差异。为了测试数据,和demo的使用,单节点上创建一个1千万的文档,如下:for(i=0; i<1000000; i++) { db.user.insert({"i":i,"username":"user"+i,"age"...
2018-08-06 23:23:04 5649
原创 MongoDB - 游标
MongoDB有一个很重要的特性就是游标Cursor,当然我们项目中也在使用,所以还是需要好好的进行研究一番。游标可以理解为指针,当去完一个则会将指针指向下一个。若是像我们项目,每天需要同步一遍全部的数据,则使用指正应该是非常合适的。但是它也伴随着很多问题需要注意。1、游标 var cursor = db.user.find({}); # 定义游标 cursor.hasNe...
2018-08-05 16:53:41 1069
原创 MongoDB - 查询文档
一、基本查询(find)1、find、findOne db.test.find(); # 默认查询条件为{},查询全部test集合的文档,可以根据条件进行过滤 db.test.findOne(); # 默认查询条件为{},查询满足条件的文档,返回第一条数据2、指定字段查询 按照条件查询返回文档,并且第二个对象参数指定需要返回的字段,默认会返回所有的字段...
2018-08-05 00:46:34 2242
原创 MongoDB - 修改文档
一、文档替换 文档替换其实在之前已经有讲过了,就是传入两个对象,第一个对象作为调节,第二个条件作为满足条件的文档修改的内容,例如: db.test.update({"name":"kevin-01"} , {"name": "kevin"}); # 修改 前面条件为,后面为修改的属性和值二、修改器进行修改 文档提交比较好理解,而修改器是在后面一个文档为...
2018-08-04 19:30:36 1115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人