我有一个很大的cosmos-db集合,我想重命名这个集合的一些属性,我发现我可以实现C#应用程序,它在集合文档上循环,并每个文档替换它们,但是这个解决方案将根据集合大小需要很长时间。 Azure Portal(函数或存储过程)或 SDK 上是否有其他解决方案,可以让我们用更少的时间实现相同的功能?
示例:
旧文档 { 代码, C 名称, C地址 }
我想将属性重命名为 { 客户代码, 顾客姓名, 客户地址 }
最佳答案
正如您在问题中提到的,您可以使用 Stored Procedure
要做到这一点。您可以按照示例代码 here
function rename(document, update) {
var fields, i, existingFieldName, newFieldName;
if (update.$rename) {
fields = Object.keys(update.$rename);
for (i = 0; i < fields.length; i++) {
existingFieldName = fields[i];
newFieldName = update.$rename[fields[i]];
if (existingFieldName == newFieldName) {
throw new Error("Bad $rename parameter: The new field name must differ from the existing field name.")
} else if (document[existingFieldName]) {
// If the field exists, set/overwrite the new field name and unset the existing field name.
document[newFieldName] = document[existingFieldName];
delete document[existingFieldName];
} else {
// Otherwise this is a noop.
}
}
}
}
关于c# - Azure Cosmos-db 重命名文档属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58397908/