00:01 If inserts are simple, updates maybe not so much.
00:03 In fact, there are two types of updates that we're going to look at;
00:06 first, we're going to look at what is the conceptually more simple one,
00:09 but also slightly more problematic.
00:11 So I'm going to call this the whole document update
00:14 and the way you might use this is you might go to the database,
00:17 do a query, get a document back, make a change to it
00:19 and say here, push this whole document
00:22 back over top the existing one in the database, kind of orm style.
00:26 The other one that we're not talking about here would be the in place updates,
00:31 so you might say go increment the view count of this post
00:34 without retrieving it, without changing the other parts,
00:38 ok, so how does the whole document update work?
00:40 Well, first of all, we're going to do an update
00:43 if we come back and we look at it, we'll see maybe we've changed the title here,
00:46 the author is still the same, but we had to pass the author,
00:48 we had to pass the published and the isbn back,
00:52 okay, in fact also the id, so all that stuff we had to put back,
00:55 basically the way it works is we're going to do a where clause here
00:58 so find it by the primary key, this great long object id
01:02 and then here is the entire whole document
01:05 we want to replace that document with.
01:07 Now because of the way it's working here,
01:09 there's a couple of features or settings you might want to control here,
01:12 so you might need to set these, you might not depending on what you're doing,
01:16 the default is if the where clause does not match, nothing will happen,
01:20 there will be no kind of upsert, there will not be a new document added
01:24 because we didn't find one, just nothing happens.
01:26 So if you say upsert is true and you run this update,
01:29 it will say I didn't find this document, so let me create it for you,
01:32 so you could control that here.
01:34 Similarly with multi equal true, normally unlike sql statements
01:37 update only updates the first item it finds
01:40 even if the where clause would match ten things, it only updates one of them.
01:43 So that's a little bit funky, but if you think it's entirely replacing the record
01:48 like why would that hole record be duplicated ten times,
01:51 I don't know, it's kind of weird, but if you do want to update multiple objects,
01:54 multiple documents in this collection, be sure to set multi to true,
01:57 both of those orange values, their default values are false.