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

2024-10-02 02:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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'

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

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的我的应用。有什么建议吗


Tags: apps项目keyid代理developerreaditems
1条回答
网友
1楼 · 发布于 2024-10-02 02:43:56

请更改以下代码行:

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

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

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

相关问题 更多 >

    热门问题