MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Diferença do MongoDB entre o código de erro 11000 e 11001


O código 11001 não existe na ramificação 2.5/2.6 no GitHub, portanto, se você estiver tentando uma versão 2.5, não poderá criá-la. Eu dei uma olhada no código, mas não consigo encontrar nenhum caminho que mostre o 11001 código diretamente.

As poucas linhas a seguir mostrarão o código 11001 :
db.so.drop();
db.so.insert( { foo: 5 } );
db.so.ensureIndex( { foo: 1 }, { unique: true } );
db.so.insert( { foo: 6 } );

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

E agora para alcançar o 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 }

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

Que a mensagem de erro textual original mostra E11000 é um bug:https://jira.mongodb.org/browse/SERVER-5978