Я использую mongodb (v2.6.7) и mongo (2.6.7) клиент оболочки.MongoDB weird writeResult поведение
Я пытаюсь использовать объект WriteResult, возвращенный командами вставки и обновления.
Согласно mongodocs в случае ошибки он возвращает объект writeResult с подзадачей writeError. Но я не могу получить доступ к этому вложенному документу в оболочке или в файле javascript mongo.
Ниже приведена иллюстрация моей проблемы.
- Я вставляю объект и получаю успешный writeResult.
- Затем я снова вставляю один и тот же _id, и я получаю правильную печать writeResult на экране, который правильно установлен «writeError».
- Также объект writeResult кажется, содержит WriteError, когда я печатаю его с printjson методом
- () Но когда я печатаю его с JSON.stringify(), то я не могу видеть «WriteError».
- Также writeResult.writeError подходит как undefined, поэтому я не могу получить доступ к свойству writeResult.writeError.code.
Может кто-нибудь объяснить, почему это происходит и каков правильный путь.
afv:PRIMARY>writeResult=db.sysinfo.insert({_id:"myid",otherData:"otherDataValue"}) WriteResult({ "nInserted" : 1 }) afv:PRIMARY>writeResult=db.sysinfo.insert({_id:"myid",otherData:"otherDataValue"}) WriteResult({ "nInserted" : 0, "writeError" : { "code" : 11000, "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: afvadmin.sysinfo.$_id_ dup key: { : \"myid\" }" } }) afv:PRIMARY> printjson(writeResult) { "nInserted" : 0, "writeError" : { "code" : 11000, "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: afvadmin.sysinfo.$_id_ dup key: { : \"myid\" }" } } afv:PRIMARY> JSON.stringify(writeResult); {"nInserted":0,"nUpserted":0,"nMatched":0,"nModified":0,"nRemoved":0} afv:PRIMARY> writeResult.writeError afv:PRIMARY> writeResult.nInserted 0 afv:PRIMARY> writeResult.writeError.code 2015-02-02T16:34:42.402+0530 TypeError: Cannot read property 'code' of undefined afv:PRIMARY> writeResult["writeError"]