Archive: 2018/11

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