gpt4 book ai didi

c# - 无法通过 sdk 从 cosmos db 中删除特定文档?

转载 作者:行者123 更新时间:2023-12-03 05:41:02 26 4
gpt4 key购买 nike

enter image description here我按照下面的代码使用DeleteDocumentAsync。

 public static void DeleteErrorLog(List<string> LogID, string collectionName)
{
FeedOptions queryOptions = new FeedOptions { EnableCrossPartitionQuery = true };
try
{
//getting resource id for a document with given logid

var db = client.CreateDatabaseQuery().Where(x => x.Id == databaseName).ToList().First();
var coll = client.CreateDocumentCollectionQuery(db.SelfLink).Where(x => x.Id == collectionName).ToList().First();
var docs = client.CreateDocumentQuery(coll.SelfLink, queryOptions).Where(x => x.Id == LogID[0]).AsEnumerable().Single();
var collectionUri = UriFactory.CreateDocumentUri(databaseName, collectionName, docs.ResourceId);
client.DeleteDocumentAsync(collectionUri);

}
catch (Exception) { throw; }
}

每个值都正确填充,我收到需要删除的文档但仍无法删除它?非常感谢任何帮助

最佳答案

您可能缺少用于删除操作的 PartitionKey:

var documentUri = UriFactory.CreateDocumentUri(databaseName, collectionName, LogID[0]);
client.DeleteDocumentAsync(documentUri, new RequestOptions(){PartitionKey=new PartitionKey(LogID[0])}).GetAwaiter().GetResult();

此外,如果您已经知道 Id(在您的情况下为 LogID[0]),则不需要查询。

关于c# - 无法通过 sdk 从 cosmos db 中删除特定文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58649043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com