DocumentDB:批量导入存储过程:在COSMOS DB中插入多个分区键文档

时间:2020-01-24 07:47:23

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi

我正在使用document client在Cosmos数据库中批量插入存储过程,但是我面临的挑战是,我需要批量插入可能具有不同partition keys的文档。

有什么办法可以实现?

我当前正在使用以下代码:

  Uri uri = UriFactory.CreateStoredProcedureUri("test-db", "test-collection", "sp_bulk_insert");
  RequestOptions options = new RequestOptions { PartitionKey = new PartitionKey("patient")};
  var result = await _client.ExecuteStoredProcedureAsync<string>(uri, options , patientInfo, pageInfo);
  return result;

但是我也有pageInfo个对象具有分区键:“页面”,但是在PartitionKey中给定RequestOptions是“耐心的”,它是patientInfo对象的分区键< / p>

当我尝试执行SP时,出现以下错误:

Requests originating from scripts cannot reference partition keys other than the one for which client request was submitted

1 个答案:

答案 0 :(得分:3)

存储过程仅限于单个分区键,因此这是不可能的。同样,没有理由使用存储过程进行批量操作。最好使用.NET SDK v3,并充分利用其中的大量支持。 https://github.com/Azure/azure-cosmos-dotnet-v3/tree/master/Microsoft.Azure.Cosmos.Samples/Usage/BulkSupport

谢谢。