MongoDB for Developers with Python Transcripts
Chapter: MongoDB's shell and native query syntax
Lecture: Connecting to MongoDB with the shell
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
So let's connect to MongoDB, I already have it running as a separate process hidden away, we'll talk about how to run MongoDB later,
0:09
you should have seen in the setup how to get it started and then we'll talk about the deployment side of things later in the class.
0:15
So MongoDB is running, it's running the local machine under default ports, no security, nothing like that for getting started,
0:22
it's only listening on 127.0.0.1 so it's not listening on the public network, on my machine, so for that reason, more or less plus firewalls,
0:32
the authentication part we're going to turn off for a little bit, just so we can start from the beginning;
0:38
okay, the other thing I have is I have set up MongoDB in my path, so I can ask which Mongo, and it comes back with something,
0:46
so what I actually did is I went to MongoDB and I just downloaded the tarball, and I unzipped it,
0:52
and I sort of changed the naming around, so it's in this path here, so here's the actual executable.
0:56
Mongo is the name of the shell, mongod is the name of the server for deamon
1:00
so in order to connect to MongoDB, there's a ton of options we could give it
1:04
and like I said, when we get to the deployment and production stuff at the end, we'll have to pass all sorts of things like authentication,
1:10
an ssl flags, and whatnot, server names here but in the beginning, we can just type mongo. And you'll see, right here, we're running 3.4.4
1:20
and it's connected to local host 27017, that's the default port for standalone servers, there's 27 thousand, 18, 19 and 20 are reserved
1:31
or typically the default for other types of things. So my system is not exactly set up right,
1:36
but it's not a production machine it's just my dev machine, okay. So now we're connected, what do you do?
1:41
Well, probably the first thing you want to do is focus on a particular database, so you can say show dbs
1:46
and it will show you the various databases, how large they are things like that,
1:51
so we're going to work with the bookstore for our examples in this chapter. Later, we're going to work on something that maps over to a car dealership,
2:00
so those are the two databases that we're going to be working with, you can see that I have got some for my various sites here and things like this,
2:07
I have actually broken it apart so like Talk Python the core data it's not really zero gigs, it's just rounding down, it's like 20 MB or something,
2:15
but the analytics is half a gig here, and it's actually much more if you export it.
2:21
So we may have more than one database for our app like I have on my podcast, or you might just have one for the trading site, like we do here.
2:28
Great, so now I want to maybe find a book in the bookstore, so how do I do that— the first thing you have to do is
2:35
you have to activate the database, so you're going to say db.command, whatever that is, and give it some command here,
2:41
where db refers to one of these databases, so the way we do that is we say use say bookstore, like this, now it says great, we switched to bookstore,
2:50
and then we could say db. first of all what are the equivalent of tables in MongoDB these are called collections, because they're not tabular,
2:57
so we can say show collections, and this is what is contained inside of bookstore, there's a Book, case sensitive, Publisher, Test and User, ok.
3:07
So if I wanted to find the books let's say db.Book.find let's say just limit one, so it doesn't go crazy on our shell here,
3:14
so basically, the way it works is we connect, we figure out what the database we want to work with is,
3:20
we say use that database and then we say db.collection name and then we typically fire these commands at the collection.
3:26
Now, what's interesting that is missing here is there's not like a create database or inside of
3:33
here there's not a create table or create collection command, so like Python in some ways, MongoDB is very, very dynamic,
3:42
so if we wanted to create a table, let's go and just create a collection and we won't create a whole new database,
3:48
so what database we have, we have a bookstore and we have those for collections bookl publisher, test and user,
3:53
so if I want to create one called logins— let's say just log for history I could even issue a find command against that
4:04
and there's just nothing, it's just empty. If we go up here and we say what's here, there's no log,
4:10
but if I actually try to interact with this, we'll talk about inserts in a little bit, but let's just really quickly see how this works,
4:18
I would just say let's say name or action is view, something like that, if I insert this, no just crazily this works and something was inserted,
4:27
if we look there's now a log, so db.Log, case sensitive .find, there
4:33
and it inserted this thing, action with a view and I gave it the id whatever it is, this is called an object id, we'll talk about that later.
4:40
Okay, so this shell is how we work with MongoDB, if I want to get rid of it, I could go here and say drop collection, just drop, right,
4:55
and now log is gone again. So this is your base level admin tool and it works everywhere, so we could ssh into our Linux server
5:03
Digital Ocean, or on aws or whatever, and we could do this, we could even sort of tunnel this through there,
5:11
but we're going to see that there is actually some better options any time we're running somewhere where we can even just tunnel over to the server.