MongoDB`updateOne()`返回的文档实际记录在哪里?

时间:2019-04-09 12:33:03

标签: node.js mongodb

MongoDB documentation for updateOne()提到:

  

返回:包含以下内容的文档

     
      
  • 布尔值acknowledged为true,如果操作运行时带有写关注点   或false(如果禁用了写关注)
  •   
  • matchedCount包含匹配的文档数
  •   
  • modifiedCount包含修改后的文档数
  •   
  • upsertedId包含上位广告的_id   文件
  •   

var document = await db.collection(collectionName).updateOne()返回的文档与上面的文档根本不相似:

{
    "n": 1,
    "nModified": 1,
    "opTime": {
        "ts": "6677868873271738369",
        "t": 2
    },
    "electionId": "7fffffff0000000000000002",
    "ok": 1,
    "operationTime": "6677868873271738369",
    "$clusterTime": {
        "clusterTime": "6677868873271738369",
        "signature": {
        "hash": "FoBe2OKGcrvuw0yc54BJ0WcOsmI=",
        "keyId": "6673465299137724417"
        }
    }
}

返回的文档存在许多问题:

  • 文档中的字段包括n之类的缩略名称,它们没有任何意义,也似乎没有文档记录。
  • updateOne文档中没有指向文档格式及其字段的完整描述的链接。
  • JSON.stringify()document上的
  • document.result返回相同的内容。

updateOne()返回的文档实际记录在哪里?

1 个答案:

答案 0 :(得分:0)

正如@neillunn在他的评论中提到的,mongodb.com没有节点驱动程序的文档。 mongodb.com上的文档适用于JavaScript Shell驱动程序。

Official documentation for the mongodb node module is hosted on GitHub

另外, matchedCountmodifiedCount等都是getter函数,不会出现在JSON字符串化响应中。但是它们确实存在:

console.log(`Inserted ${dbResponse.upsertedCount} docs, modified ${dbResponse.modifiedCount}`)

the minified fields is at GitHub

的描述

另外,upsertedCount的命名不正确,因为它不包含更新,仅包含插入的文档。

(如果愿意,请尼尔发表自己的答案,我会标记为正确)