正如标题所示,我需要以编程方式将100,000多条记录插入到DocumentDb集合中.这些数据将在稍后用于创建报告.我正在使用Azure Documents SDK和用于批量插入文档的存储过程(请参阅使用存储过程查询Azure documentdb批量插入).
以下控制台应用程序显示了我如何插入文档.
InsertDocuments生成500个测试文档以传递给存储过程.main函数调用InsertDocuments 10次,整体插入5,000个文档.运行此应用程序会导致每隔几秒钟插入500个文档.如果我增加每次通话的文件数量,我就会开始收到错误并丢失文件.
任何人都可以推荐更快的方式来插入文件?
static void Main(string[] args)
{
Console.WriteLine("Starting...");
MainAsync().Wait();
}
static async Task MainAsync()
{
int campaignId = 1001,
count = 500;
for (int i = 0; i < 10; i++)
{
await InsertDocuments(campaignId, (count * i) + 1, (count * i) + count);
}
}
static async Task InsertDocuments(int campaignId, int startId, int endId)
{
using (DocumentClient client = new DocumentClient(new Uri(documentDbUrl), documentDbKey))
{
List<dynamic> items = new List<dynamic>(); …Run Code Online (Sandbox Code Playgroud) 我有文件列表(对象)该对象有多个文件,即Json记录存在,但我尝试上传文件串(记录)它不上传文档数据库,但我上传单文档记录,它成功上传.
List<MyModelClass> listObj = new List<MyModelClass>();
Document doc = await DocumentClient.CreateDocumentAsync("dbs/" + DocumentDatabase.Id + "/colls/" + DocumentCollection.Id, listObj);
Run Code Online (Sandbox Code Playgroud)
上面的代码不工作.....
foreach (var item in listObj )
{
Document doc = await Client.CreateDocumentAsync("dbs/" + DocumentDatabase.Id + "/colls/" + DocumentCollection.Id, item);
}
Run Code Online (Sandbox Code Playgroud)
这段代码对我有用.....
Syntax : CreateDocumentAsync(String,?Object,?RequestOptions,?Boolean)
Object :- Document object // I Know it as per syntax it need to be "Document Type".
Run Code Online (Sandbox Code Playgroud)
我想要任何其他方式一次上传所有文档....
我已经浏览了一天关于如何从excel文件中插入documentDB中的批量数据,但我没有得到任何信息.
我可以从excel文件中读取数据并在documentDB中逐个插入
Service service = new Service();
foreach(data in exceldata) //exceldata contains set of rows
{
var student = new Student();
student.id= "";
student.name = data.name;
student.age = data.age;
student.class = data.class;
student.id = service.savetoDocumentDB(collectionLink,student); //collectionlink is a string stored in web.config
students.add(student);
}
Class Service
{
public async Task<string> AddDocument(string collectionLink, Student data)
{
this.DeserializePayload(data);
var result = await Client.CreateDocumentAsync(collectionLink, data);
return result.Resource.Id;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在一个实例中插入所有记录吗?
任何帮助都会非常明显.