sql >> Database >  >> NoSQL >> MongoDB

MongoDB-verschil tussen foutcode 11000 en 11001

De code 11001 bestaat niet in de 2.5/2.6-branch op GitHub, dus als je een 2.5-versie probeert, kun je deze niet maken. Ik heb de code bekeken, maar ik kan geen pad vinden dat de 11001 laat zien code ofwel rechtstreeks.

De volgende paar regels tonen code 11001 :

db.so.drop();
db.so.insert( { foo: 5 } );
db.so.ensureIndex( { foo: 1 }, { unique: true } );
db.so.insert( { foo: 6 } );

De verwachte 11000 :

db.so.insert( { foo: 5 } );
E11000 duplicate key error index: test.so.$foo_1  dup key: { : 5.0 }

En nu om de 11001 te bereiken :

db.so.insert( { foo: 6 } );
db.so.update( { foo: 6 }, { $set: { foo: 5 } } );
E11000 duplicate key error index: test.so.$foo_1  dup key: { : 5.0 }

Nog steeds de originele 11000 , maar:

db.getPrevError();
{
    "err" : "E11000 duplicate key error index: test.so.$foo_1  dup key: { : 5.0 }",
    "code" : 11001,
    "n" : 0,
    "nPrev" : 1,
    "ok" : 1
}

Dat de originele tekstuele foutmelding E11000 . toont is een bug:https://jira.mongodb.org/browse/SERVER-5978



  1. Wat gebeurt er als verbindingen met MongoDB niet worden gesloten?

  2. Mongoose maakt verbinding voor multi-tenancy-ondersteuning in node.js

  3. MongoDB:invoegen bij dubbele sleutelupdate

  4. Kan ik globale TTL in redis instellen?