MongoDB_00

MongoDB_blog ○

Attribution: MongoDB: The Definitive Guide, Third Edition by Shannon Bradshaw, Eoin Brazil, and Kristina Chodorow (O’Reilly). Copyright 2020 Shannon Bradshaw and Eoin Brazil, 978-1-491-95446-1.

1. Introduction

​ MongoDB is a powerful, flexible, and scalable general-purpose database. It combines the ability to scale out with features such as secondary indexes, range queries, sorting, aggregations, and geospatial indexes.

​ MongoDB is a document-oriented database, not a relational one.

  • The primary reason for moving away from the relational model is to make scaling out easier.
  • An approach makes it possible to represent complex hierarchical relationships with a single record which fits naturally into how developers in modern object-oriented languages think about their data.
  • Without a fixed schema, adding or removing fields as needed becomes easier. Generally, this makes development faster as developers can quickly iterate. It is also easier to experiment.

Designed to Scale

​ MongoDB was designed to scale out. The document-oriented data model makes it easier to split data across multiple servers. MongoDB automatically takes care of balancing data and load across a cluster, redistributing documents automatically and routing reads and writes to the correct machines, as shown in Figure 2-1.

​ The topology of a MongoDB cluster, or whether there is in fact a cluster rather than a single node at the other end of a database connection, is transparent to the application. This allows developers to focus on programming the application, not scaling it.


Rich with Features…

  • Indexing

    ​ MongoDB supports generic secondary indexes and provides unique, compound, geospatial, and full-text indexing capabilities as well.

  • Aggregation

    ​ MongoDB provides an aggregation framework based on the concept of data processing pipelines.

    Aggregation pipelines allow you to build complex analytics engines by processing data through a series of relatively simple stages on the server side, taking full advantage of database optimizations.

  • Special collection and index types

    ​ MongoDB supports time-to-live (TTL) collections for data that should expire at a certain time.

    Such as sessions and fixed-size (capped) collections, for holding recent data, such as logs.

    ​ MongoDB also supports partial indexes limited to only those documents matching a criteria filter in order to increase efficiency and reduce the amount of storage space required.

  • File storage

    MongoDB supports an easy-to-use protocol for storing large files and file metadata.


Some features common to relational databases are not present in MongoDB, notably complex joins.

​ MongoDB’s treatment of joins were architectural decisions to allow for greater scalability, because both of those features are difficult to provide efficiently in a distributed system.

…Without Sacrificing Speed

​ MongoDB uses opportunistic locking in its WiredTiger storage engine to maximize concurrency and throughput. It uses as much RAM as it can as its cache and attempts to automatically choose the correct indexes for queries.

The Philosophy

​ Throughout this book(Blog), we will take the time to note the reasoning or motivation behind particular decisions made in the development of MongoDB. Through those notes we hope to share the philosophy behind MongoDB. The best way to summarize the MongoDB project, however, is by referencing its main focus—to create a full-featured data store that is scalable, flexible, and fast.

posted @   seveN1foR  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示