猿问

根据提供的任何文档,Item.Read 不起作用

我已阅读了有关 CosmosDB Read Item 方法提供的所有类型的文档。但这似乎不起作用。


const item = container.item(id, undefined);

console.log("Read item '" + item.id + "'");

const { resource: readDoc } = await item.read();

console.log("item with id found: '", readDoc);

我传递的ID是“1”,集合中有一条id为“1”的记录。它总是返回为未定义。有人已经知道这是如何工作的吗?


这是我引用的文档。(按 ID 读取项目:Item.read) https://learn.microsoft.com/en-us/azure/cosmos-db/sql-api-nodejs-samples


缥缈止盈
浏览 132回答 2
2回答

千巷猫影

看来您传递了错误的密钥item("id","key")。当您undifined作为此方法的键传递时,这意味着您没有像此屏幕截图一样定义 id 为“1”的文档的分区键值。我猜您的 id 为“1”的文档具有分区键值,因此 Cosmos DB 无法找到 id 为“1”并且没有分区键值的文档。如果是这样,您需要将分区键值传递给item("id","key").例如,我有一个如下所示的文档,我的代码应该是这样的:const item = container.item("1", "dog");console.log("Read item '" + item.id + "'");const { resource: readDoc } = await item.read();console.log("item with id found: '", readDoc);

摇曳的蔷薇

Azure 文档是错误的(或者至少令人难以置信的混乱)。两个字符串必须相同。例如Cosmos 数据库条目:{ "id": "123456", "name": "John Smith" }分区键:/idconst { resource } = await container   .item("123456", "123456")   .read();或者const { resource } = await container       .item("123456", "123456")       .delete();希望有帮助。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答