MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB - Защо индексът _id не извежда грешка при дублиращи се записи?

Няма причина да се показва дублираща се грешка в индекса в първия случай, тъй като просто се опитва да актуализира _id и name полета от един и същи запис с една и съща стойност.

Ако опитате

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

ще получите грешка, тъй като заявката се опитва да актуализира запис с различен _id с някакъв съществуващ _id стойност.

Във втория случай първо сте създали запис с name и след това се опитвате да актуализирате същото име в друг запис, което ще даде грешка като name е уникален индекс.

Редактиране:-

Ако се опитвате

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

ще ви даде грешката, тъй като в този случай се опитвате да вмъкнете запис, който вече присъства, т.е. _id е уникален и се опитвате да създадете още един запис със същия _id стойност.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се свърже с MongDB Atlas с помощта на Mongoose

  2. Използвайте MongoEngine и PyMongo заедно

  3. Направете mongoid сесия само за четене

  4. Разменете стойностите в масив MongoDB

  5. MongoError:Неуспешна проверка на документа - Как да вмъкна и float, и int в едно и също поле - което е маркирано като двойно?