首页 > 解决方案 > PYTHON - 从 Azure Cosmos DB 的集合中删除项目

问题描述

我是使用 Azure 开发的新手。我希望你能帮助这个代码。我的目标是从 Azure Cosmos DB 的集合中删除项目。但我得到 http 错误:如果我使用这个值 'partionKey' = '/Structures' 则为 400,如果值为 '' 则为 404。错误消息 =“x-ms-partitionkey 标头中提供的分区键的组件少于集合中定义的组件”

client = cosmos_client.CosmosClient("https://....documents.azure.com:443/", {'masterKey': '...'})

options = {}

options['enableCrossPartitionQuery'] = True
options['maxItemCount'] = 5
options['partitionKey'] = '/Structures'

client.DeleteItem("dbs/.../colls/.../docs/.../", options)

标签: python-2.7azure-cosmosdb

解决方案


错误是由这一行引起的:

options['partitionKey'] = '/Structures'

这里需要指定partition key的具体值,而不是列名。比如我的partition key是'/name',而这个文档中的具体值是'A'。

在此处输入图像描述

然后你的代码看起来像:

from azure.cosmos import cosmos_client

client = cosmos_client.CosmosClient("https://***.documents.azure.com:443/", {'masterKey': '***'})

options = {}

options['enableCrossPartitionQuery'] = True
options['maxItemCount'] = 5
options['partitionKey'] = 'A'

client.DeleteItem("dbs/db/colls/coll/docs/2", options)

推荐阅读