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
).
我在 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
).