00:01 Okay, so we can list the cars, we can now go and find the individual cars 00:04 using this query and a little bit of error handling here. 00:08 Now, let's go and actually add the service record 00:10 so we are going to create a service = service record 00:16 I think this is what we called it, no, service history, sorry, 00:20 00:24 we're going to import that, so we're going to allocate one of these 00:27 and we just need to set a few properties, the price is 00:29 let's just straight up input this— what is the price right, 00:35 maybe we would look up at the type of service 00:37 and it would have an associated price 00:39 but this is just a demo, right,  just trying to get it to work; 00:41 so this is the float, some kind of currency thing, I want to say service.date, 00:48 we don't need to set the date, this should happen automatically, 00:50 description is going to be input what type of service is this, 00:56 and then the next one we want is going to be the customer rating, 01:02 and this is an integer, how happy is our customer, I want to put a one to five, 01:10 something like this to remind them that that's the scale they get to work with. 01:14 Okay, we're just assuming this is parsable by float, 01:17 this can be an integer right, we're not dealing with bad input. 01:21 So that should work, let's just double check the service history 01:24 these three we're setting, this one has a default, perfect. 01:27 Ok, so finally all we have to do is we don't insert the service history directly 01:32 because the service history is not a top level object 01:36 it doesn't belong in its own collection, 01:39 instead what we do is we go to the car and we say service history 01:42 it's a list, so we're going to put it on it like this, like so, 01:45 the ones we've changed the car we need to push that to the database like this, 01:49 so that's all we got to do, we're just going to put the service history here and insert, 01:54 let's go and run this and see what we get, 01:57 alright, once again we're going to list the cars 01:59 and notice we're going to work on the one that is really obvious 02:01 this 2005 Testarossa, okay so let's service it, 02:03 here's our vin number, excellent we're going to service it, 02:06 what is the price of the service— this is expensive, 15 thousand, 02:10 this is going to be a new engine, they blew the engine 02:13 a customer was very happy, normally, new engine is 20 thousand 02:17 and so we got him a good deal— bam, just like that, we've inserted it, 02:21 let's try to list it I might still have that format wrong; 02:24 no I got it sort of right, so we definitely got that to work there, 02:29 let me just change that format like I said, 02:35 there we go, actually let's just drop the currency, I'm sorry drop the decimal points, 02:43 so here 15 thousand dollars, for our new engine, 02:46 look at that, it's in there, let's go and actually do another service on that same car 02:50 the price of this one is a 102 dollars, this is going to be a flat tire, 02:55 and the customer was a little grumpy, felt like we took too long to fix the car 03:00 but they still like us, they give us a three; 03:03 so now if we list it you can see now there's two service records on the Testarossa, 03:07 pretty cool, right, that's super easy, and we don't need to do a join to get this information, 03:11 it comes built in even if we're doing horizontal scaling across ten shards it's all there, 03:17 let's go look at Robomongo, 03:21 it's a little small, what do you think, it does that sometimes, I don't know way, 03:25 okay, here is our demo dealership, let's view the documents 03:28 and we can say vi number, now of course we don't really need to do this, 03:33 but we can, just to show you, we have tons of data, 03:37 we look down here and now check this out, is that cool, 03:39 so we've got our flat level things, here's the vin we just did a search by 03:43 we have this embedded engine we already saw, 03:45 we have our service history and moreover our service history is setting the date 03:48 right, so right now it's like eight o'clock 04 seconds and 56 seconds right, 03:53 the price of this is beautiful, just beautiful, 03:57 so now if we do a query against this, 03:59 we go and say show me the vehicle with this id number, 04:02 we're going to automatically get the details about the engine, 04:04 we're going to automatically get the details about their service history, 04:07 without going back to the database or doing lazy loading, 04:10 or joins or any of those kinds of things, because it's a sweet document database. 04:15 Notice, also that some of these over here, some of these have a service history, 04:22 some of them don't even have engine, 04:24 this one doesn't have an engine or a service history, 04:26 and that's probably ok, right, the schema is flexible in MongoDB, 04:29 the schema is not flexible in our application, it's a class, 04:33 it is what the shape of that class is, period, 04:35 but in the sort of evolution of this as the data grows, 04:39 you can think of this as like an older version of this record 04:42 and here is a much newer one, it has an engine and a service history, right, 04:46 but if we ask questions about show me the cars 04:49 with the service history greater than this, you know, five or greater, 04:52 these are not going to come up, they will just not appear in those results. 04:56 So it's probably okay if we really need to upgrade them, 04:59 to make sure the shape is exactly matching 05:02 we could just run a script, the script would be a Javascript migrate script 05:04 rather than a sequel dvl type migrate script, but a script nonetheless.