sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB - Hvorfor kaster _id-indekset ikke en fejl på duplikerede poster?

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.




  1. Mongoose-forespørgsel til indlejret skema

  2. Installation af Apache CouchDB på Debian 9

  3. Caching af JSON-objekter på serversiden

  4. Kan ikke oprette forbindelse til mongodb errno:61 Forbindelsen blev afvist