Let's take an example where I have a variable p one equals to an empty object. This time, we will also assign an underscore ID equals to one, p one dot name equals to Smith. P one dot c d equals to the last. If I say DB dot contracts dot insert p one and run the same, you will see that it gets executed successfully. And it has given a result saying that the N inserted is one. However, if I run the same thing, once more, we get an error because the underscore ID is more or less like a primary key of our DBMS tables.
So we cannot have the same ID. Now sometimes this may be a problem because we might have retrieved the data from the database and then we would have more terrified and we would like to save it back. So instead of the insert, if I use a save function and run the same, you will see that there is no error. However, this time it says number of match two documents is one, absurd it is zero, we'll come to the concept of observing but at this time, it is number of modified records is also zero. That's because we didn't make any changes. However, instead of Smith, this is Martin and save this and run the same.
You will see that this time it says number of modified documents is one. And that's because we we have some different values. It did not insert but it's just updating the existing document itself.