Node.js Azure CosmosDB/Nodejs-系统中不存在具有指定id的实体

Node.js Azure CosmosDB/Nodejs-系统中不存在具有指定id的实体,node.js,graphql,azure-cosmosdb,graphql-mutation,Node.js,Graphql,Azure Cosmosdb,Graphql Mutation,我正在尝试使用graphql/nodejs代码删除和更新cosmosDB中的记录,结果出现错误-“系统中不存在具有指定id的实体”。这是我的密码 deleteRecord: async (root, id) => { const { resource: result } = await container.item(id.id, key).delete(); console.log(`Deleted item with id: ${id}`); }, 不知何故,下面的代码无法找到

我正在尝试使用graphql/nodejs代码删除和更新cosmosDB中的记录,结果出现错误-“系统中不存在具有指定id的实体”。这是我的密码

deleteRecord: async (root, id) => {
  const { resource: result } = await container.item(id.id, key).delete();
  console.log(`Deleted item with id: ${id}`);
},
不知何故,下面的代码无法找到记录,甚至“container.item(id.id,key).read()”也无法工作

await container.item(id.id, key)
但是,如果我尝试使用查询规范查找记录,它会起作用

await container.items.query('SELECT * from c where c.id = "'+id+'"' ).fetchNext()
仅供参考-我能够获取所有记录并创建新项,因此连接到数据库和读/写不是问题

还能是什么?任何与此相关的指针都会有所帮助


提前感谢。

您似乎将错误的密钥传递给了
项(id,密钥)
。根据本报告的说明:

在“更新”和“删除”方法中,必须选择该项 通过调用container.item()从数据库中删除。这两个参数 传入的是项的id和项的分区键。在这个 在这种情况下,分区键是“类别”字段的值

因此,您需要传递分区键的值,而不是分区键路径。 例如,如果您有下面这样的文档,并且分区键为“/category”,则需要使用此代码
wait container.item(“xxxxxx”,“movie”)


似乎您将错误的密钥传递给了
项(id,密钥)
。根据本报告的说明:

在“更新”和“删除”方法中,必须选择该项 通过调用container.item()从数据库中删除。这两个参数 传入的是项的id和项的分区键。在这个 在这种情况下,分区键是“类别”字段的值

因此,您需要传递分区键的值,而不是分区键路径。 例如,如果您有下面这样的文档,并且分区键为“/category”,则需要使用此代码
wait container.item(“xxxxxx”,“movie”)


令人沮丧的是,这篇文档没有提到需要使用分区键:令人沮丧的是,这篇文档没有提到需要使用分区键:
{
    "id":"xxxxxx",
    "category":"movie"
}