gpt4 book ai didi

MongoDB 奇怪的 writeResult 行为

转载 作者:可可西里 更新时间:2023-11-01 09:10:49 28 4
gpt4 key购买 nike

我正在使用 mongodb (v2.6.7) 和 mongo (2.6.7) shell 客户端。

我正在尝试使用插入和更新命令返回的 WriteResult 对象。

根据 mongodocs如果出现错误,它会返回一个带有 writeError 子文档的 writeResult 对象。但我无法在 shell 或 mongo 的 javascript 文件中访问此子文档。

下面是我的问题的说明。

  • 我插入一个对象并获得成功的 writeResult。
  • 然后我使用相同的 _id 再次插入,并且在正确设置了“writeError”的屏幕上正确打印了 writeResult。
  • 当我使用 printjson() 方法打印 writeResult 对象时,它似乎也包含 writeError
  • 但是当我用 JSON.stringify() 打印它时,我看不到“writeError”。
  • 另外,writeResult.writeError 未定义,因此我无法访问其 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.writeErrorafv:PRIMARY> writeResult.nInserted0afv:PRIMARY> writeResult.writeError.code2015-02-02T16:34:42.402+0530 TypeError: Cannot read property 'code' of undefinedafv:PRIMARY> writeResult["writeError"]

最佳答案

我不知道为什么要这样实现,但是要访问包含的 writeError 子文档,您可以在 WriteResult getWriteError()对象:

> writeResult.getWriteError()
WriteError({
"index": 0,
"code": 11000,
"errmsg": "insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test.$_id_ dup key: { : \"myid\" }",
"op": {
"_id": "myid",
"otherData": "otherDataValue"
}
})

> writeResult.getWriteError().code
11000

我找不到这方面的任何文档。我通过在 shell 中键入 writeResult. 后按两次 Tab 来查看可用内容。

关于MongoDB 奇怪的 writeResult 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28276784/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com