Azure 如何在文档数据库中上载多个文档(批量)

Azure 如何在文档数据库中上载多个文档(批量),azure,azure-cosmosdb,Azure,Azure Cosmosdb,我有文档列表(对象),该对象有多个文档,即存在Json记录,但当我尝试上载该文档(记录)束时,它不会上载到文档数据库中,但当我上载单个文档记录时,它会成功上载 List<MyModelClass> listObj = new List<MyModelClass>(); Document doc = await DocumentClient.CreateDocumentAsync("dbs/" + DocumentDatabase.Id + "/colls/" +

我有文档列表(对象),该对象有多个文档,即存在Json记录,但当我尝试上载该文档(记录)束时,它不会上载到文档数据库中,但当我上载单个文档记录时,它会成功上载

  List<MyModelClass> listObj = new List<MyModelClass>();
  Document doc = await DocumentClient.CreateDocumentAsync("dbs/" + DocumentDatabase.Id + "/colls/" + DocumentCollection.Id, listObj);
此代码适用于我

 Syntax : CreateDocumentAsync(String, Object, RequestOptions, Boolean)
 Object :- Document object // I Know it as per syntax it need to be "Document Type".

我需要任何其他方法一次上载所有文档。…

一次不能插入多个文档。对
CreateDocumentAsync()
的调用仅适用于单个文档

要实现这一点,您需要设计某种类型的服务器端存储过程来实现这一点,然后在一次调用中将文档数组传递给函数。您可能希望了解其他人是如何使用服务器端函数解决此问题的,方法是在本地创建一个文档数组,然后在其存储过程中遍历该数组。因此,创建类似这样的内容(摘自该答案):

并将
docObject
传递给存储过程


最终,存储过程仍将进行单独的插入调用,每个文档一个。但是您将不会有多个网络往返。并且插入将是事务性的(如果其中一个插入失败,或者您抛出了异常,其他插入将回滚)。

现在可以使用Microsoft.Azure.CosmosDB.BulkExecutor库一次插入多个文档


根据@david的回答,这是一个大容量导入存储过程的示例-谢谢,david和Ryan,你的回答对我很有帮助。嘿,我遇到了执行“ExecuteStoreProcedureAsync”方法的问题。我的执行指针指向“ExecuteStoreProcedureAsync”方法,然后什么也不会发生,也不例外…@PravinSharma请提出一个新问题,并说明具体情况(例如,您的代码)。请提供添加文档的具体示例,而不仅仅是链接。
 Syntax : CreateDocumentAsync(String, Object, RequestOptions, Boolean)
 Object :- Document object // I Know it as per syntax it need to be "Document Type".
docObject = {
  "items": [{doc}, {doc}, {doc}]
}