MongoDB is a tool to explore data structured as you see fit. As a NoSQL database, it doesn't follow the strict relational format imposed by SQL. By providing capabilities that typically require adding layers to SQL, it collapses complexity. With dynamic schema, you can handle vastly different data together and consolidate analytics. The flexibility of MongoDB empowers you to keep improving and fix issues as your requirements evolve. In this course, you will learn the MongoDB language and apply it to search and analytics. Working with unprocessed data from the official nobelprize.org API, you will explore and answer questions about Nobel Laureates and prizes.
Flexibly Structured DataFree
This chapter is about getting a bird's-eye view of the Nobel Prize data's structure. You will relate MongoDB documents, collections, and databases to JSON and Python types. You'll then use filters, operators, and dot notation to explore substructure.
Working with Distinct Values and Sets
Now you have a sense of the data's structure. This chapter is about dipping your toes into the pools of values for various fields. You'll collect distinct values, test for membership in sets, and match values to patterns.
Get Only What You Need, and Fast
You can now query collections with ease and collect documents to examine and analyze with Python. But this process is sometimes slow and onerous for large collections and documents. This chapter is about various ways to speed up and simplify that process.
Aggregation Pipelines: Let the Server Do It For You
You've used projection, sorting, indexing, and limits to speed up data fetching. But there are still annoying performance bottlenecks in your analysis pipelines. You still need to fetch a ton of data. Thus, network bandwidth and downstream processing and memory capacity still impact performance. This chapter is about using MongoDB to perform aggregations for you on the server.
In the following tracksData Engineer
Donny is a computer systems engineer at Lawrence Berkeley National Lab.
Donny is a computer systems engineer at Lawrence Berkeley National Lab. He is the principal web developer for the Materials Project (materialsproject.org), and he co-maintains several codebases and services for data-driven discovery of advanced materials. MongoDB helps him support rapid collaboration and schema evolution for these services. An instructor for the Software Carpentry Foundation, he has taught workshop lessons on Python, Git, Bash, SQL, and MongoDB. In the past, he studied nano-fabrication and scanning-charged-particle-beam lithography before shifting professional focus to software-as-a-service. He likes hyphens.