使用唯一键删除 cosmos 文档而不先获取对象
Delete cosmos document with unique keys without fetching object first
我的对象看起来像这样:
{
"documentType":"doc",
"relatedKey": "Person1",
"Color": "blue",
"Street": "SomeStreet",
}
分区键 设置为 /documentType
UniqueKey 设置为 /documentType,/relatedKey
现在如何通过发送分区键和UniqueKey直接删除文档?通过使用 Cosmos API??
下面是一些代码来展示我正在努力实现的目标:
[HttpDelete]
[Route("{documentType}/{relatedKey}")]
public async Task<ActionResult<string>> DeleteDocument(string documentType, string relatedKey)
{
Document doc = await documentClient.DeleteDocumentAsync(String.Format("/dbs/{0}/colls/{1}/docs/{2}/{3}", database, collection, documentType, relatedKey), new RequestOptions { PartitionKey = new Microsoft.Azure.Documents.PartitionKey(documentType) });
return Ok("ExtensionDocument deleted");
}
我的主要困难是删除具有多个唯一键的对象,而不仅仅是 PartitionKey
只用一个PartitionKey我就知道怎么删除文件了
您不能通过这种方式删除文档。您必须使用文档 ID 和分区键。
关于删除的文档是here
我的对象看起来像这样:
{
"documentType":"doc",
"relatedKey": "Person1",
"Color": "blue",
"Street": "SomeStreet",
}
分区键 设置为 /documentType
UniqueKey 设置为 /documentType,/relatedKey
现在如何通过发送分区键和UniqueKey直接删除文档?通过使用 Cosmos API??
下面是一些代码来展示我正在努力实现的目标:
[HttpDelete]
[Route("{documentType}/{relatedKey}")]
public async Task<ActionResult<string>> DeleteDocument(string documentType, string relatedKey)
{
Document doc = await documentClient.DeleteDocumentAsync(String.Format("/dbs/{0}/colls/{1}/docs/{2}/{3}", database, collection, documentType, relatedKey), new RequestOptions { PartitionKey = new Microsoft.Azure.Documents.PartitionKey(documentType) });
return Ok("ExtensionDocument deleted");
}
我的主要困难是删除具有多个唯一键的对象,而不仅仅是 PartitionKey
只用一个PartitionKey我就知道怎么删除文件了
您不能通过这种方式删除文档。您必须使用文档 ID 和分区键。
关于删除的文档是here