Azure Cosmos Python“具有指定 ID 的实体在系统中不存在

Azure Cosmos Python "Entity with the specified id does not exist in the system

我在 Cosmos DB 的“应用程序”容器中托管了一个简单的项目:

{
    "id": "2",
    "apps": "testApp2",
    "name": "testApp2",
    "description": "I'm a test app2!",
    "developer": "test2 developer",
    "platforms": "Android",
    "created_at": "6/9/2021",
    "updated_at": "6/14/2021
}
Parition key = 'apps'

但是,当我尝试在我的容器代理(appId = 2)上调用函数 read_item

appContainer = database.get_container_client('apps')
return appContainer.read_item(item=str(appId), partition_key='apps')

我收到一条错误消息,指出 “消息:具有指定 ID 的实体在系统中不存在”

我对此感到困惑,因为我有完全相同的方式通过我的用户容器的容器代理读取项目,并且它工作正常。除此之外,当我使用此代码片段时

appQuery = "SELECT * FROM a WHERE a.id = '%s'" %(appId,)
items = list(appContainer.query_items(
    query=appQuery,
    enable_cross_partition_query=True
))
return items[0]

正确找到了我的 ID 为 2 的应用程序。有什么建议吗?

请更改以下代码行:

return appContainer.read_item(item=str(appId), partition_key='apps')

return appContainer.read_item(item=str(appId), partition_key='testApp2')

您正在做的是指定分区键属性的名称 (apps)。您需要做的是指定分区键的值 (testApp2).