【发布时间】:2019-04-09 23:14:02
【问题描述】:
MongoDB documentation for updateOne() 提到:
返回:包含以下内容的文档:
- 布尔值
acknowledged为真,如果该操作以写问题运行 如果禁用了写关注,则为 falsematchedCount包含匹配文档的数量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()在document和document.result上返回相同的东西。
updateOne()返回的文档实际记录在哪里?
【问题讨论】:
-
updateOne()的“JSON 字符串化”响应看起来像您发布的内容。但是,如果您测试响应中返回的实际对象,那么您会发现matchedCount、modifiedCount等(所有实际记录的内容)实际上都在那里。因为它们是作为 JavaScript 函数实现的,因此不会出现在对象的“字符串化”表示中。 -
另外,NodeJS 文档在这里
updateOne()和 the response information。您在问题中链接到的“shell 文档”与 NodeJS API 略有不同。但不会太多,因为那些functions在响应对象中仍然命名相同。 -
@NeilLunn 谢谢。我错过了小的“shell 文档”,并且看不到为不同的客户端库(例如,Stripe 或任何其他现代 API)选择文档的链接——而且这些文档是异地的,这很奇怪。无论如何,如果您将这些回复合并为一个答案,我会将其标记为已接受。