sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB – Proč index _id nevyvolá chybu u duplicitních záznamů?

V prvním případě není důvod zobrazovat chybu duplicitního indexu, protože se pouze pokouší aktualizovat _id a name pole stejného záznamu se stejnou hodnotou.

Pokud to zkusíte

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

dostanete chybu, protože dotaz se pokouší aktualizovat záznam s jiným _id s některým existujícím _id hodnotu.

Ve druhém případě jste nejprve vytvořili záznam s name a poté se pokoušíte aktualizovat stejný název v jiném záznamu, což způsobí chybu name je jedinečný index.

Upravit :-

Pokud se snažíte

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

zobrazí chybu, protože v tomto případě se pokoušíte vložit záznam, který již existuje, tj. _id je jedinečný a pokoušíte se vytvořit další záznam se stejným _id hodnotu.




  1. Aktualizujte hodnotu v MongoDB na základě její aktuální hodnoty

  2. Vytvořte ISODate pomocí pyMongo

  3. MongoDb:$geoIntersects pro více vstupních souřadnic

  4. Transformujte data MongoDB při hledání