随笔分类 -  MongoDB

摘要:分片(Sharding) 分片就是将数据进行拆分,并将其分别存储在不同的服务器上 MongoDB支持自动分片能够自动处理数据在分片上的分布 MongoDB分片有三种角色 配置服务器:一个单独的mongod进程,主要记录了哪个分片服务器包含了哪些数据的信息,保存的只是数据的分布表,如果配置服务器不可用时,将变为只读,不能进行分片和数据迁移, 配置服务器的1KB空间相当于真... 阅读全文
posted @ 2016-11-30 11:39 Alvin.Lee 阅读(1478) 评论(0) 推荐(1) 编辑
摘要:副本集 可以将MongoDB中的副本集看作一组服务器集群由一个主节点和多个副本节点等组成,相对于之前讲到的主从复制提供了故障自动转移的功能 副本集实现数据同步的方式依赖于local数据库中的oplog数据 oplog是存在与主节点或副本节点上的local数据库中的一个固定集合,记录了每一次主节点的写操作,或副本节点每一次从主节点复制数据的操作 备份节点通过定时从主节点获... 阅读全文
posted @ 2016-11-24 10:10 Alvin.Lee 阅读(3778) 评论(0) 推荐(1) 编辑
摘要:Master/Slave主从复制 主从复制MongoDB中比较常用的一种方式,如果要实现主从复制至少应该有两个MongoDB实例,一个作为主节点负责客户端请求,另一个作为从节点负责从主节点映射数据,提供数据备份,客户端读取等,推荐一主多从模式 MongoDB主从复制的实现方式: 主节点的操作会被记录为oplog,存储在系统数据库local的集合oplog.$main中,这个集合中... 阅读全文
posted @ 2016-11-23 09:57 Alvin.Lee 阅读(7612) 评论(0) 推荐(1) 编辑
摘要:索引 索引能够提升查询的效率。没有索引,MongoDB必须扫描集合中的所有文档,才能找到匹配查询语句的文档。 索引是一种特殊的数据结构,将一小块数据集保存为容易遍历的形式。索引能够存储某种特殊字段或字段集的值,并按照索引指定的方式将字段值进行排序。 然而使用索引也是有代价的:对于添加的每一个索引,每次的插入、更新、删除都将会消耗更多的时间。这是因为当数据发生变动时,数据库不仅要... 阅读全文
posted @ 2016-11-22 14:44 Alvin.Lee 阅读(2555) 评论(1) 推荐(0) 编辑
摘要:MongoDB聚合管道 使用聚合管道可以对集合中的文档进行变换和组合。 管道是由一个个功能节点组成的,这些节点用管道操作符来进行表示。聚合管道以一个集合中的所有文档作为开始,然后这些文档从一个操作节点流向下一个节点 ,每个操作节点对文档做相应的操作。这些操作可能会创建新的文档或者过滤掉一些不符合条件的文档,在管道中可以对文档进行重复操作。 管道表达式只可以操作当前管道中的... 阅读全文
posted @ 2016-11-21 14:50 Alvin.Lee 阅读(7524) 评论(0) 推荐(0) 编辑
摘要:MapReduce MongoDB中的MapReduce相当于关系数据库中的group by。使用MapReduce要实现两个函数Map和Reduce函数。Map函数调用emit(key,value),遍历 Collection中所有的记录,将key与value传递给Reduce函数进行处理。 Mapreduce使用惯用的javascript操作来做map和reduce操作,因此Mapreduce... 阅读全文
posted @ 2016-11-18 10:45 Alvin.Lee 阅读(764) 评论(0) 推荐(0) 编辑
摘要:单独的聚合命令(group,distinct,count) 单独聚合命令 比aggregate性能低,比Map-reduce灵活度低;但是可以节省几行javascript代码,后面那句话我自己加的,哈哈哈~ count()方法可以查询统计符合条件的集合的总数 db.COLLECTION_NAME.count() // 此方法等价于 db.COLLECTION_N... 阅读全文
posted @ 2016-11-16 15:12 Alvin.Lee 阅读(21973) 评论(1) 推荐(0) 编辑
摘要:查询文档 使用db.COLLECTION_NAME.findOne()可以查询所有满足条件的第一条数据 预发格式如下: db.COLLECTION_NAME.findOne(, ) 参数说明: query :可选参数, 指明查询条件,相当于SQL中的where语句 projection : 可选参数,指定了那些字段是需要返回的,若要返回所有字段则... 阅读全文
posted @ 2016-11-15 13:19 Alvin.Lee 阅读(867) 评论(0) 推荐(0) 编辑
摘要:插入文档 使用db.COLLECTION_NAME.insert() 或 db.COLLECTION_NAME.save() 方法向集合中插入文档 在插入的文档中,如果没有指定 _id 参数,MongoDB 会自动为文档指定一个唯一的 ID。 使用db.COLLECTION_NAME.insert( 阅读全文
posted @ 2016-11-14 17:53 Alvin.Lee 阅读(291) 评论(0) 推荐(0) 编辑
摘要:创建集合 使用db.createCollection(name, options)方法创建集合 name 所创建的集合名称必选! options 可选。指定有关内存大小及索引的选项 db.createCollection("mycollection") --或 db.mycollection.insert( { user_id: "abc123", ... 阅读全文
posted @ 2016-11-14 17:51 Alvin.Lee 阅读(401) 评论(0) 推荐(0) 编辑
摘要:MongoDB连接标准格式: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 参数说明 Mongodb://必填的前缀,标识当前字符串为便准链接格式username:password@可选项,给出用户名和密码后,在连接数... 阅读全文
posted @ 2016-11-14 15:48 Alvin.Lee 阅读(9246) 评论(0) 推荐(0) 编辑
摘要:使用use数据库名称来创建数据库,如果该数据库已经存在则返回这个数据库 语句格式:use DATABASE_NAME >use mynewdb switched to db mynewdb 使用db名称可以检查当前使用的数据库 > db mynewdb 使用命令show dbs来检查数据库列表。 > show dbs GnyMongo ... 阅读全文
posted @ 2016-11-14 12:00 Alvin.Lee 阅读(431) 评论(0) 推荐(0) 编辑
摘要:MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装,可以在命令行中输入以下指令检查Windows版本: wmic os get osarchitecture 32 位版本的 MongoDB 只支持 2G 以下的数据库,只适用于测试及评估。 ... 阅读全文
posted @ 2016-11-11 18:15 Alvin.Lee 阅读(2184) 评论(0) 推荐(0) 编辑
摘要:概述 MongoDB是一个跨平台,面向文档的数据库。MongoDB创建的数据库可以实现高可用性,高性能,并且能够轻松拓展。 MongodbDB的运行方式主要给予两个概念:集合(collection)和文档(document) 数据库 数据库就是集合的实际容器 集合 集合就是一组MongoDB文档,相当于关系型数据库的表。 文档 文档就是一组键-值对,类似... 阅读全文
posted @ 2016-11-10 11:30 Alvin.Lee 阅读(414) 评论(0) 推荐(0) 编辑