sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - Varför kastar inte _id-indexet ett fel på dubbla poster?

Det finns ingen anledning att visa dubblettindexfel i det första fallet eftersom det bara försöker uppdatera _id och name fält i samma post med samma värde.

Om du vill försöka

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

du kommer att få ett felmeddelande, eftersom frågan försöker uppdatera posten med annan _id med någon befintlig _id värde.

I det andra fallet skapade du först en post med name och sedan försöker du uppdatera samma namn i en annan post, vilket kommer att ge felet som name är unikt index.

Redigera :-

Om du försöker

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

ger dig felet, eftersom du i det här fallet försöker infoga en post som redan finns, dvs. _id är unik och du försöker skapa ytterligare en post med samma _id värde.




  1. Varför använda Redis istället för MongoDb för cachelagring?

  2. Inbäddat dokument med tillhör_till-förening i Mongoid

  3. Har Mongo DB ett In-Memory-läge?

  4. Spring Boot Data och MongoDB - Filter Subdocument Array Query