MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Unterschied zwischen Fehlercode 11000 und 11001

Der Code 11001 existiert nicht im 2.5/2.6-Zweig auf GitHub. Wenn Sie also eine 2.5-Version ausprobieren, können Sie sie nicht erstellen. Ich habe mir den Code angesehen, aber ich kann keinen Pfad finden, der den 11001 zeigt Code entweder direkt.

Die folgenden Zeilen zeigen den Code 11001 :

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

Der erwartete 11000 :

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

Und jetzt zum 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 }

Immer noch das Original 11000 , aber:

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

Dass die ursprüngliche Textfehlermeldung E11000 anzeigt ist ein Fehler:https://jira.mongodb.org/browse/SERVER-5978