Я использую клиент оболочки mongodb (v2.6.7) и mongo (2.6.7).
Я пытаюсь использовать объект WriteResult, возвращаемый командами вставки и обновления.
Согласно mongodocs, в случае ошибки он возвращает объект writeResult с вложенным документом writeError. Но я не могу получить доступ к этому поддокументу в оболочке или в файле javascript mongo.
Ниже приведена иллюстрация моей проблемы.
- Я вставляю объект и получаю успешный результат записи.
- Затем я снова вставляю с тем же _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"]