当前位置: 首页 > 编程语言 > C#

从DocumentDb中删除特定文档分享

时间:2023-04-10 13:56:55 C#

从DocumentDb中删除特定文档以下代码检索所有具有特定jobId的CrawlResult文档。varresult=(fromcindocumentDb.CreateDocumentQuery(collection.SelfLink)wherec.JobId==jobIdselectc);现在我想删除具有此特定jobId的所有文档。我发现删除文件的唯一方法是:documentDb.DeleteDocumentAsync(stringdocumentLink)但如何使documentLink执行documentDb.DeleteDocumentAsync()?为此,您需要编写SQL查询,以便您可以动态访问Document的内部属性以及CrawlResult。例如下面的代码:classCrawlResult{[JsonProperty("jobId")]publicstringJobId;}privateasyncTaskQueryAndDelete(DocumentClientclient,stringcollectionLink){awaitclient.CreateDocumentAsync(collectionLink,newCrawlResult{JobId="J123"});awaitclient.CreateDocumentAsync(collectionLink,newCrawlResult{JobId="J456"});foreach(Documentdocumentinclient.CreateDocumentQuery(collectionLink,newSqlQuerySpec("SELECT*FROMcrawlResultsrWHEREr.jobId=@jobId",newSqlParameterCollection(new[]{newSqlParameter{Name="@jobId",Value="J123"}})))){//可选地,使用动态转换转换为CrawlResultCrawlResultresult=(CrawlResult)(dynamic)document;awaitclient.DeleteDocumentAsync(document.SelfLink);}}好吧,正式高效的方法如下:综上所述,获取Document实例后即可访问文档链接。之后,您可以找到SelfLink属性。干杯。另一种删除特定文档的可能方法如下:*)首先,您应该创建一个文档客户端实例。this.client=newDocumentClient(newUri(m_ConnInfo.EndPointURL),m_ConnInfo.AccountKey);Uri_docDbUri=newUri("https://8878d4ed-0ee0-4-321-c9ef.documents.azure.com");使用(varclient=newDocumentClient(_docDbUri,m_ConnInfo.AccountKey)){try{varcoll=client.CreateDocumentCollectionQuery(db.CollectionsLink).ToList().First();vardocs=client.CreateDocumentQuery(coll.DocumentsLink);foreach(vardocindocs){if(doc.Id=="123"){client.DeleteDocumentAsync(doc.SelfLink).Wait();}}}catch(Exception){//ignored}}我希望这个问题没问题这个问题更有帮助。以上是C#学习教程:从DocumentDb中删除特定文档共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: