【问题标题】:Where is the document returned by MongoDB `updateOne()` actually documented?MongoDB `updateOne()` 返回的文档实际记录在哪里?
【发布时间】:2019-04-09 23:14:02
【问题描述】:

MongoDB documentation for updateOne() 提到:

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

  • 布尔值acknowledged 为真,如果该操作以写问题运行 如果禁用了写关注,则为 false
  • matchedCount 包含匹配文档的数量
  • modifiedCount 包含修改文档的数量
  • upsertedId 包含 upserted 的 _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()documentdocument.result 上返回相同的东西。

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

【问题讨论】:

  • updateOne() 的“JSON 字符串化”响应看起来像您发布的内容。但是,如果您测试响应中返回的实际对象,那么您会发现 matchedCountmodifiedCount 等(所有实际记录的内容)实际上都在那里。因为它们是作为 JavaScript 函数实现的,因此不会出现在对象的“字符串化”表示中。
  • 另外,NodeJS 文档在这里 updateOne()the response information。您在问题中链接到的“shell 文档”与 NodeJS API 略有不同。但不会太多,因为那些 functions 在响应对象中仍然命名相同。
  • @NeilLunn 谢谢。我错过了小的“shell 文档”,并且看不到为不同的客户端库(例如,Stripe 或任何其他现代 API)选择文档的链接——而且这些文档是异地的,这很奇怪。无论如何,如果您将这些回复合并为一个答案,我会将其标记为已接受。

标签: node.js mongodb


【解决方案1】:

正如@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 的命名不正确,因为它不包括更新,它只包括插入的文档。

(如果您愿意,尼尔可以发布您自己的答案,我会将其标记为正确)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多