您好,我正在使用适用于节点的 Windows Azure SDK,但不知道如何使用此库进行批量更新:
因为我找不到任何关于如何做到这一点的例子。是否有人使用 tableService.js 文件的 isInBatch 属性进行批量更新、删除和插入?
任何帮助或建议将不胜感激。
干杯
您好,我正在使用适用于节点的 Windows Azure SDK,但不知道如何使用此库进行批量更新:
因为我找不到任何关于如何做到这一点的例子。是否有人使用 tableService.js 文件的 isInBatch 属性进行批量更新、删除和插入?
任何帮助或建议将不胜感激。
干杯
在 Windows Azure SDK for node github repo中,查看下的博客示例/examples/blog
。具体来说,blog.js。在这里,您将看到示例代码,从第 91 行开始,在实体组事务中,一系列博客文章被写入同一分区:
provider.tableClient.beginBatch();
var now = new Date().toString();
provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post one', body: 'Body one', created_at: now });
provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post two', body: 'Body two', created_at: now });
provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post three', body: 'Body three', created_at: now });
provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post four', body: 'Body four', created_at: now });
provider.tableClient.commitBatch(function () {
console.log('Done');
请注意关于分区的要点。这是您可以在单个事务中写入多个实体的唯一方法:它们必须位于同一分区中。
编辑- 正如@Igorek 正确指出的那样,单个实体组事务仅限于 100 个实体。此外,交易的整个有效负载不得超过 4MB。有关实体组事务的所有详细信息,请参阅此 MSDN 文章。