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.

44 lines
2.9 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 We've explored the shell a little bit, we've done some querying,
00:03 let's look at the concepts behind it, so you have them nice and concise,
00:06 in case you want to come back for a reference.
00:09 So if we want to query say the Book collection in the bookstore database
00:12 where the title is 'From the Corner of His Eye',
00:17 we can type find and give it this little prototypical json object,
00:20 hit enter, and boom everything comes back that has the same title,
00:25 different isbns, different primary keys and so on,
00:27 but releases, different versions,
00:29 maybe one is paper back on is kindle, who knows;
00:31 so the idea is we're going to come up with these prototypical json objects,
00:35 here title: whatever the title is.
00:39 Now, if we want to do more than just what is the title here
00:42 we want to say give me the book with the title this and the isbn that,
00:47 given that the isbn is probably unique,
00:50 we could maybe just search for it instead,
00:52 but we want to demonstrate the and clause, right.
00:54 So here we'll give it this prototypical sub document
00:56 with the title being the title we're looking for, and the isbn being this one.
01:00 And notice, now we only get one record back,
01:03 so our prototype will document is basically an and clause, every field must match.
01:09 We also saw that one of the excellent ways to group related data,
01:14 this would be what you might call an aggregate in domain driven design,
01:18 is to embed items into the document,
01:22 so here we have ratings that ratings have little sub objects,
01:25 sub documents that have things like user ids and values
01:28 and at the very beginning, and in the example you saw,
01:30 the superpower of these document databases, is that they can query them,
01:34 so I want to find all the books that have been rated by this highlighted user id—
01:38 how do I do that? So we just pretend we're traversing the objects
01:41 Ratings.UserId, so down here we'll say find Ratings.UserId
01:46 and we give it the object id that we're looking for
01:49 because ''Ratings.UserId'' is not a valid key or a field name in a Javascript object
01:54 we have to put it in quotes, but other than that, it's basically the same idea
01:58 and here we get back all the books that have been rated by this particular user.
02:02 So we just use this dotted notation to traverse the hierarchy
02:07 one other interesting point is maybe ratings just contained the number
02:11 like it was at 7,5,... then you could actually just if I want to say
02:17 find all the books that have a rating of seven
02:20 I could just say find ratings:7,
02:23 I don't have to do this dot notation or anything like that,
02:25 but because I'm looking within that document inside ratings,
02:27 regardless of whether it's an array or it's a single rating thing,
02:31 you do it like this that dot notation.