0

我正在尝试在我的 .NET C# 应用程序中使用 BulkDelete 函数(用于 Cosmos DB 图形数据库),该函数接受字符串查询并删除所有结果。文档:https ://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmosdb.bulkexecutor.graph.graphbulkexecutor.bulkdeletasync?view=azure-dotnet

由于我不知道要在图中删除的顶点和边的 Id 和分区键,因此我无法使用此 BulkDelete API:https ://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting -started#bulk-delete-api

使用 CosmosDB.BulkExecutor.Graph.GraphBulkExecutor.BulkDeleteAsync (将查询作为字符串接收)会引发此异常:

System.NotImplementedException:方法或操作未实现。在 Microsoft.Azure.CosmosDB.BulkExecutor.Graph.GraphBulkExecutor.BulkDeleteAsync(字符串查询,Nullable`1 deleteBatchSize,CancellationToken cancelToken)在...

相关代码片段:

        // Prepare for bulk delete
         var bulkExecutor = new GraphBulkExecutor(client, dataCollection);
        await bulkExecutor.InitializeAsync();
        var cancellationToken = new CancellationTokenSource().Token;


        string query = "g.V().hasLabel('user')";

        BulkDeleteResponse bulkDeleteResponse = null;

        try
        {
            bulkDeleteResponse = await bulkExecutor.BulkDeleteAsync(query, 1000, cancellationToken);
            PrintSummaryofBulkDelete(bulkDeleteResponse);
        }
        catch (DocumentClientException de)
        {
            LogUtility.Error("Document client exception: {0}", de);
        }
        catch (Exception e)
        {
            LogUtility.Error("Exception: {0}", e);
        }

是真的没有实现还是我在使用它时犯了错误?

4

1 回答 1

1

真的没有实施。对于 GraphBulkExecutor,唯一可用的操作似乎是 Import。

原因可能是 GraphBulkExecutor 只使用了 Bulk Executor SQL API 库,它只支持 SQL 类型的查询(没有图形查询)。这可能是 GraphBulkExecutor 不接受任何查询输入的原因,因为它无法运行它。

于 2021-03-01T19:59:49.193 回答