Der er ingen grund til at vise duplikatindeksfejl i det første tilfælde, da det bare forsøger at opdatere _id
og name
felter i samme post med samme værdi.
Hvis du vil prøve
db.foo.update({ _id: '1098'}, { _id: 'doe123', name: 'John Doe'}, { upsert: true});
du vil få fejl, da forespørgslen forsøger at opdatere posten med en anden _id
med nogle eksisterende _id
værdi.
I det andet tilfælde oprettede du først en post med name
og derefter forsøger du at opdatere det samme navn i en anden post, hvilket vil give fejl som name
er unikt indeks.
Rediger :-
Hvis du prøver
db.foo.insert({ _id: 'doe123', name: 'John Doe'});
vil give dig fejlen, da du i dette tilfælde forsøger at indsætte en post, som allerede er til stede, dvs. _id
er unik, og du forsøger at oprette en post mere med samme _id
værdi.