|
|
00:01 All right, the moment you've probably been waiting for is finally here,
|
|
|
00:04 we're going to start moving away from Javascript
|
|
|
00:06 and doing Python for the rest of this course to talk to MongoDB.
|
|
|
00:09 That doesn't mean we might not use the Javascript API in the shell,
|
|
|
00:12 just a little bit more, but for the most part
|
|
|
00:14 we're going to focus now on writing applications
|
|
|
00:17 that talk to and work with MongoDB.
|
|
|
00:19 So we're going to look at in MongoDB's nomenclature
|
|
|
00:23 something called a driver, so a driver is the underlying library or framework
|
|
|
00:27 that you used to talk between your application and MongoDB.
|
|
|
00:30 So here we've got our web app
|
|
|
00:33 and it's going to be using the database MongoDB here.
|
|
|
00:35 A request is going to come in, into our web app
|
|
|
00:38 and it's going to use a particular package, right,
|
|
|
00:40 this is not built into Python, this is something we have to go out and get.
|
|
|
00:43 So the package that we're going to work with
|
|
|
00:45 is built and maintained by MongoDB themselves, and is called PyMongo.
|
|
|
00:50 So this is the core, lowest level access to the database server
|
|
|
00:54 and it does the tone of things for us,
|
|
|
00:56 in fact if you look at many of the odms the object document mappers
|
|
|
01:00 the equivalent of the NoSql orm, they build upon PyMongo, right
|
|
|
01:04 so PyMongo is almost always involved
|
|
|
01:06 when you're talking to MongoDB from Python.
|
|
|
01:09 And it does many things for us, it connects to the database
|
|
|
01:12 whether it's local, remote, over ssl, with authentication, with certificates,
|
|
|
01:16 all that kind of stuff, it actually manages replica sets
|
|
|
01:20 so it knows how to find all the different servers participating in a replica
|
|
|
01:24 and do the fail over if one fails,
|
|
|
01:27 it knows how to go over to the other one, things like that;
|
|
|
01:30 it also knows how to deal with sharding,
|
|
|
01:32 so maybe you have a cluster of ten MongoDB servers
|
|
|
01:36 that are all managing part of the data
|
|
|
01:38 and then participate as a group in the queries, PyMongo does that for us,
|
|
|
01:41 this is generally where you do the crud operations,
|
|
|
01:44 the find, insert, update, delete, and those kinds of things;
|
|
|
01:47 you do the other admin stuff as well,
|
|
|
01:49 like drop tables or create indexes and so on,
|
|
|
01:53 and it even does connection pulling,
|
|
|
01:55 so really this does all the stuff that you need to talk to MongoDB
|
|
|
01:58 and the api is very, very, very similar to what we saw with the Javascript API
|
|
|
02:03 which is why I didn't skim over it, I wanted to say, okay,
|
|
|
02:06 you really learned the Javascript api,
|
|
|
02:08 now you basically also know the PyMongo api,
|
|
|
02:11 findOne with a capital O, no spaces,
|
|
|
02:13 is now find_one, with a lower case o, for example,
|
|
|
02:17 there's a few variations for like say pythonic naming
|
|
|
02:20 but other than that, PyMongo is going to sound
|
|
|
02:22 and feel very, very familiar to you at this point.
|
|
|
02:26 Like many things from MongoDB, PyMongo is open source
|
|
|
02:29 so you can come over here to github.com/mongodb/mongo-python-driver,
|
|
|
02:35 and that is PyMongo.
|
|
|
02:37 So you'll see that you can go look around,
|
|
|
02:40 you can see it's under active development and things like that,
|
|
|
02:43 a lot of stars, so this is like I said, the official driver
|
|
|
02:45 but you also have access to the source, right here.
|
|
|
02:48 So now that we know about PyMongo,
|
|
|
02:50 I hope you're ready to go write some code. |