sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB skillnad mellan felkod 11000 och 11001

Koden 11001 finns inte i 2.5/2.6-grenen på GitHub, så om du provar en 2.5-version kan du inte skapa den. Jag tittade på koden, men jag kan inte hitta någon sökväg som visar 11001 kod antingen direkt.

Följande rader visar kod 11001 :

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

Den förväntade 11000 :

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

Och nu för att nå 11001 :

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 }

Fortfarande originalet 11000 , men:

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

Att det ursprungliga textfelmeddelandet visar E11000 är en bugg:https://jira.mongodb.org/browse/SERVER-5978



  1. mongodb c# välj specifikt fält

  2. I Jongo, hur man hittar flera dokument från Mongodb genom en lista med ID:n

  3. MongoDb SafeMode jämför med WriteConcern

  4. Bygga mongo-cxx-drivrutin med CMake ExternalProject_Add