MongoDB for Developers with Python Transcripts
Chapter: Welcome to the course
0:01 Hello and welcome to MongoDB for Python developers.
0:04 Throughout this course, we're going to learn
0:07 how to connect, model for and build applications with MongoDB,
0:11 and we're going to do this with Python.
0:14 We're going to look at the straightforward, lowest level way of doing things
0:17 with PyMongo, and we're going to look at mapping classes
0:20 through what's called an ODM, think orm for Mongo;
0:24 an ODM to Mongo DB with Mongo Engine.
0:28 And these come together to make a great combination.
0:31 So let's begin by talking about document databases, how do they work?
0:35 Well document databases in some ways
0:38 are very much like standard relational databases,
0:40 they have what you would think of as columns in that relational world,
0:44 title, course id and duration in seconds here for example,
0:48 but it also has nested data, so in a relational database
0:51 we might have a lectures table that has
0:54 some kind of foreign key constraint back to a chapter
0:56 in this example we have on the screen here,
0:59 but in fact in a relational database, we can embed those lectures
1:02 inside of the chapter object, why is this good?
1:06 Well, often, we spend so much time and energy
1:09 building up an object hierarchy in our application
1:12 and then tearing that apart into a bunch of little pieces
1:15 what's called third normal form, basically normalizing our data
1:18 in a relational database and then building a backup, taking it back apart
1:22 and this object relational impedance mismatch
1:25 makes it hard for us to reason about our code,
1:28 it makes it a little bit less intuitive and so on.
1:31 So with document databases, we can model our data
1:34 the same way our application wants to use that data.
1:37 We also have more flexibility in the schema,
1:39 which means that deploying a new version of our application
1:43 often does not require some kind of migration script and downtime,
1:47 no, we just deploy the new version and the document database adapts to it.
1:51 So document databases in my opinion are the best way to build applications,
1:55 for the 80 percent case right, maybe you have some edge case
1:58 where that doesn't make a lot of sense
2:01 but most apps really benefit from using document databases.