python - Azure Cosmos DB,删除 IDS(肯定存在)
问题描述
这可能是一个非常简单和愚蠢的错误,但我不确定这是如何失败的。我使用了https://github.com/Azure/azure-cosmos-python#insert-data教程。我如何查询数据库然后使用那些ids
删除然后它们不存在。
在周末到来之前有人可以帮忙吗?谢谢,努力看看这是如何失败的!
错误:
azure.cosmos.errors.HTTPFailure: Status code: 404
{"code":"NotFound","message":"Entity with the specified id does not exist in the system., \r\nRequestStartTime: 2020-02-07T17:08:48.1413131Z,
RequestEndTime: 2020-02-07T17:08:48.1413131Z,
Number of regions attempted:1\r\nResponseTime: 2020-02-07T17:08:48.1413131Z,
StoreResult: StorePhysicalAddress: rntbd://cdb-ms-prod-northeurope1-fd24.documents.azure.com:14363/apps/dedf1644-3129-4bd1-9eaa-8efc450341c4/services/956a2aa9-0cad-451f-a172-3f3c7d8353ef/partitions/bac75b40-384a-4019-a973-d2e85ada9c87/replicas/132248272332111641p/,
LSN: 79, GlobalCommittedLsn: 79, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 404,
SubStatusCode: 0, RequestCharge: 1.24, ItemLSN: -1, SessionToken: 0#79#13=-1,
UsingLocalLSN: False, TransportException: null, ResourceType: Document,
OperationType: Delete\r\n, Microsoft.Azure.Documents.Common/2.9.2"}
这是我的代码...
def get_images_to_check(database_id, container_id):
images = client.QueryItems("dbs/" + database_id + "/colls/" + container_id,
{
'query': 'SELECT * FROM c r WHERE r.manually_reviewed=@manrev',
'parameters': [
{'name': '@manrev', 'value': False}
]
},
{'enableCrossPartitionQuery': True})
return list(images)
def delete_data(database_id, container_id, data):
for item in data:
print(item['id'])
client.DeleteItem("dbs/" + database_id + "/colls/" + container_id + "/docs/" + item['id'], {'partitionKey': 'class'})
database_id = 'ModelData'
container_id = 'ImagePredictions'
container_id = 'IncorrectPredictions'
images_to_check = get_images_to_check(database_id, container_id)
delete_data(database_id, container_id, images_to_check)```
解决方案
问题很可能在于文档的不匹配id
和PartitionKey
价值。文档通过其 id 和 PartitionKey 值的组合在集合中唯一标识。
因此,为了删除一个文档,您需要为文档的 id 和它的 PartitionKey 值指定正确的值。
推荐阅读
- javascript - .ENV 在 razzle js 中不起作用
- c# - 如何从文本文件的特定位置复制字符串
- amazon-web-services - 更好的是:在启动时配置实例或启动预先支持的映像?
- android - 在android studio中将图像添加到mipmap文件夹时出现问题
- javascript - How to implement side effect on observable property?
- java - 当另一个元素隐藏在 NetBeans 中时,如何阻止元素移动?
- python - 如何在 sortedcontainers.SortedDict 中设置排序谓词?
- java - nexus-staging-maven-plugin 是如何使用的
信息? - php - PHP XML 最后一个数组到 Int
- windows - 以下脚本有什么作用?