在CosmosDb中使用BulkExecutor时无效的索引异常

时间:2018-12-10 02:28:33

标签: azure-cosmosdb bulkupdate

当我尝试使用BulkExecutor更新CosmosDb中的属性之一时出现错误。错误消息为“索引超出范围。必须为非负数并且小于集合的大小。 参数名称:索引”

要点-我的收藏夹中没有定义分区键。

这是我的代码:

SetUpdateOperation<string> player1NameUpdateOperation = new SetUpdateOperation<string>("Player1Name", name);
var updateOperations = new List<UpdateOperation>();
updateOperations.Add(player1NameUpdateOperation);
var updateItems = new List<UpdateItem>();
foreach (var match in list)
{
  string id = match.id;
  updateItems.Add(new UpdateItem(id, null, updateOperations));
}
var executor = new Microsoft.Azure.CosmosDB.BulkExecutor.BulkExecutor(_client, _collection);
await executor.InitializeAsync();
var executeResult = await executor.BulkUpdateAsync(updateItems);
var count = executeResult.NumberOfDocumentsUpdated;

我想念什么?

1 个答案:

答案 0 :(得分:1)

如果我在没有分区键的集合上运行批量执行程序,则会遇到相同的错误。如果我使用包含它的集合运行它并指定了它,则批量执行器可以正常工作。

可以肯定的是,他们现在只是不通过批量执行程序api支持它,只需使用普通的cosmos api来更新文档即可,作为一种解决方法。