我已阅读了有关 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
2 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
看来您传递了错误的密钥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);
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
Azure 文档是错误的(或者至少令人难以置信的混乱)。
两个字符串必须相同。
例如
Cosmos 数据库条目:
{ "id": "123456", "name": "John Smith" }
分区键:/id
const { resource } = await container .item("123456", "123456") .read();
或者
const { resource } = await container .item("123456", "123456") .delete();
希望有帮助。
添加回答
举报
0/150
提交
取消