删除DocumentDb特定的文档 [英] Delete specific document from DocumentDb
本文介绍了删除DocumentDb特定的文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下code检索所有CrawlResult文件与一个特定的jobId。
The following code retrieves all CrawlResult documents with a specific jobId.
var result = (from c in documentDb.CreateDocumentQuery<Shared.CrawlResult>(collection.SelfLink)
where c.JobId == jobId
select c);
现在我要删除所有文件与此特定的jobId。删除文件的唯一办法,我发现是:
Now I want to delete all documents with this specific jobId. The only way to delete documents I found was:
documentDb.DeleteDocumentAsync(string documentLink)
但我怎么让documentLink执行 documentDb.DeleteDocumentAsync()
?
推荐答案
要做到这一点,你需要写一个SQL查询,这样就可以动态地访问这两个文件的内部属性,以及CrawlResult。
To do this, you need to write a SQL query so that you can dynamically access both the internal properties of Document, as well as CrawlResult.
例如,如以下code:
For example, like in the following code:
class CrawlResult
{
[JsonProperty("jobId")]
public string JobId;
}
private async Task QueryAndDelete(DocumentClient client, string collectionLink)
{
await client.CreateDocumentAsync(collectionLink, new CrawlResult { JobId = "J123" });
await client.CreateDocumentAsync(collectionLink, new CrawlResult { JobId = "J456" });
foreach (Document document in client.CreateDocumentQuery(
collectionLink,
new SqlQuerySpec(
"SELECT * FROM crawlResults r WHERE r.jobId = @jobId",
new SqlParameterCollection(new[] { new SqlParameter { Name = "@jobId", Value = "J123" } })
)))
{
// Optionally, cast to CrawlResult using a dynamic cast
CrawlResult result = (CrawlResult)(dynamic)document;
await client.DeleteDocumentAsync(document.SelfLink);
}
}
这篇关于删除DocumentDb特定的文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文