This content is part of the Buyer's Guide: How to select the best DBMS software: A buyer's guide

MongoDB NoSQL DBMS overview

MongoDB database management system is designed for running modern applications that rely on structured and unstructured data and support rapidly changing data.

MongoDB is an open source document store NoSQL DBMS designed to make it easier for organizations to develop and run applications that address performance, availability and scalability, and support a variety of data types. MongoDB's document data model lets developers easily store and combine data of any structure, without sacrificing data access or indexing functionality. This enables database administrators to dynamically modify the schema with no downtime.

MongoDB features

MongoDB 3.2, released in November 2015, introduces several new features, including pluggable storage engines. The in-memory storage engine enables all data to be maintained in-memory, while the ephemeral for-test storage engine is ideal for testing purposes but is not recommended for production implementation. This engine can be set up so that no data is maintained on-disk, which means no clean-up is needed in between test runs. Additionally, the WiredTiger storage engine, which delivers compression and document-level concurrency control, is now the default MongoDB storage engine. With MongoDB 3.2, encryption is also available for the WiredTiger storage engine in MongoDB Enterprise.

MongoDB 3.2 also delivers improved text search and shared cluster configuration, as well as the ability to validate documents during updates and inserts. The new partial index capability enables database administrators to create indexes using a filter that will reduce the size of the index and, in some cases, deliver performance improvements. Other highlights include enhanced real-time analytics, connectivity to industry-standard business intelligence and SQL query tools, schema discovery and visualization capabilities, as well as improved performance and availability.

The major components in the MongoDB package are mongod, the core database process; mongos the controller and query router for sharded clusters; and mongo the interactive MongoDB Shell, which is used to issue commands.

Applications connect to the database via the MongoDB database drivers. There are 12 supported drivers and more than 30 community drivers designed to conform to the style of the native programming language being used by the developer.

Additionally, multiple tools are packaged with MongoDB NoSQL DBMS for importing and exporting data from the database and for performing diagnostics. Ops Manager, provided as part of MongoDB Enterprise Advanced, can be used to provision, monitor, back up and scale MongoDB.

The Cloud Manager provides a cloud-managed MongoDB service on the user's infrastructure. For more information, download the MongoDB Architecture Guide.

As noted above, MongoDB has both an open source and commercial edition. The commercial edition, MongoDB Enterprise Server, is available as part of the MongoDB Enterprise Advanced subscription, which adds advanced security, administration features, support and on-demand training not available in the open source edition.

OSes and data types supported

MongoDB is supported on multiple distributions of Linux, as well as on Windows, Oracle Solaris and Apple OS X. MongoDB can be implemented in the cloud using the MongoDB Atlas service.

MongoDB stores data as documents in BSON, which is a binary JavaScript Object Notation (JSON) representation. BSON encoding extends the JSON representation to include additional data types such as int, long and floating point. BSON documents contain one or more fields, and each field contains a value of a specific data type, including arrays, binary data and sub-documents.

Licensing and pricing

MongoDB can be licensed as open source or commercially. For open source, it's available under the AGPL license and drivers are licensed under the Apache Software License. Users running MongoDB under the AGPL license can purchase production support with monthly or annual contract terms.

Sold directly by MongoDB and its partners, both MongoDB Enterprise Advanced and MongoDB Production Support are priced per physical server, configured with up to 512 GB of memory.

MongoDB Atlas is priced based on the customer's region as well as memory and storage requirements. Pricing starts at $0.0026 per hour.

MongoDB also offers a development support package for up to 10 developers and an unlimited number of servers for six months. This package includes technical support, plus the tools and features of MongoDB, as well as access to MongoDB Enterprise Server and Ops Manager.

MongoDB is available in binary distributions and with package managers from the MongoDB downloads page. In addition to on-premises use, MongoDB Enterprise Server is available through several cloud providers.

Although there are no industry standard benchmarks for NoSQL databases, MongoDB provides an indication of performance and scale in real-world applications.

About the author
Craig S. Mullins is a data management strategist, researcher, consultant and author with more than 30 years of experience in all facets of database systems development. He is president and principal consultant of Mullins Consulting Inc. and publisher/editor of Email him at [email protected].

Email us at [email protected] and follow us on Twitter: @sDataManagement.

This article was updated in September 2016.

Dig Deeper on Database management system (DBMS) software and technology