python-2.7 - 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)
解决方案
错误是由这一行引起的:
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)
推荐阅读
- ios - 如何处理这个关于错误处理的错误
- twig - 本地化货币过滤器在除法后引发“非格式良好的数值”
- javascript - 我怎样才能得到一个复选框值?
- xslt - XML 输出,元素值作为标签名称,下一个后续元素值作为创建标签的值
- sql-server - 列存储索引创建失败并出现此错误“资源池'默认'中没有足够的内存来运行此查询”
- spring-boot - 如何将用户 bean 的可选列表传递给 JsonParser 以生成 PDF
- selenium - 如何定位桌面应用程序的 XPATH
- c# - Visual Studio 2019 winforms 自定义控件设计器问题
- python - 有没有办法将文件中的列表设置为字典中的值
- django - 如何在 Django 视图中访问多项目索引模型?