sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Waarom geeft de _id-index geen foutmelding bij dubbele vermeldingen?

Er is geen reden om in het eerste geval een dubbele indexfout weer te geven, omdat het gewoon probeert de _id bij te werken en name velden van hetzelfde record met dezelfde waarde.

Als je het wilt proberen

  db.foo.update({ _id: '1098'}, { _id: 'doe123', name: 'John Doe'}, { upsert: true});

u krijgt een foutmelding, omdat de query de record probeert bij te werken met een andere _id met een aantal bestaande _id waarde.

In het tweede geval heb je eerst een record aangemaakt met name veld en dan probeert u dezelfde naam in een ander record bij te werken, wat een fout zal geven als name is een unieke index.

Bewerken:-

Als je probeert

 db.foo.insert({ _id: 'doe123', name: 'John Doe'});

geeft u de foutmelding, omdat u in dit geval probeert een record in te voegen dat al aanwezig is, bijv. _id is uniek en u probeert nog een record te maken met dezelfde _id waarde.




  1. dus je HBase is kapot

  2. Spring Data MongoDB en allowDiskUse

  3. Hoe direct een geneste veld opvragen zonder het bovenliggende veld op te geven?

  4. Opdracht mislukt in script, werkt in opdrachtregel