当我尝试使用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;
我想念什么?
答案 0 :(得分:1)
如果我在没有分区键的集合上运行批量执行程序,则会遇到相同的错误。如果我使用包含它的集合运行它并指定了它,则批量执行器可以正常工作。
可以肯定的是,他们现在只是不通过批量执行程序api支持它,只需使用普通的cosmos api来更新文档即可,作为一种解决方法。