You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
2.3 KiB
Plaintext

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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