Tag: MongoDB

Replication In MongoDB

冗余和数据可用性 副本集提供了数据冗余,增强了数据的可用性。 在多个服务器上部署副本集可提供对单点故障的容错能力。 副本集可以提高读能力——分发请求到多个服务器。 MongoDB中的副本集 一个副本集由多个mongod实例组成,它们管理着同一组数据。 一个副本集包含多个数据节点和一个可选的仲裁节点;数据节点中有且仅有一个主节点,其它的节点为副节点。 所有写操作由主节点处理。 主节点在日志中记录

Index In MongoDB

索引能减少需要扫描的文档,从而提升查询效率;如果没有索引,查询需要扫描collection中所有document,相比之下多了许多磁盘IO操作。索引存储了索引字段的值以及目标文档的位置,按所有字段的值有序排列。MongoDB中索引定义在collection上,可以对字段、嵌套字段应用索引。 默认的_id索引创建collection时,MongoDB自动对_id字段设置了唯一索引(unique i

Transaction In MongoDB

MongoDB中的事务可以对不同datebase、不同collection、不同document使用。 事务和锁 Transaction开始之前会请求需要用到的锁,在指定时间(默认5ms)内不能满足就会退出。 Transaction退出或提交后会释放持有的锁 如果在Transaction开始之前要立即添加或删除collection,需要设置writeConcern为majority确保能获得相关

Operators in Aggregation Pipeline

阶段操作符(Stages) $addFields: 添加字段 $bucket: 基于指定的表达式和边界把文档分组 $bucketAuto: 基于指定表达式把文档平均的分为指定数量的组 $collStats: 关于某个collection的统计数据 $count: 当前阶段的文档的数量 $facet: 对当前阶段的文档并行执行多个AggregationPipline,得到不同维度数据 $geoNe

Aggregation In MongoDB

Aggregation PipelineAggregation Pipeline 是基于数据处理管道思想的数据聚合框架。把数据处理分为不同的阶段,数据依次经过每个阶段处理,最后得到结果。例如:12345// SELECT customer_id AS _id, SUM(amount) AS total FROM orders WHERE status = "DONE" GROUP BY cust

MongoDB

MongoDB是文档数据库:一条记录即一个文档(document)。 使用文档的好处: 文档能直接对应编程语言中的原始类型,例如对象(Object)。 嵌套的文档能减少昂贵的JOIN操作。 动态的结构能存储多样的数据。 MongoDB特点 高性能 嵌套的数据模型能减少数据库系统的IO操作。 索引能更快的查询,索引能包含嵌套的文档的键。 丰富的查询功能 基础的CRUD 聚合(Aggr