我有一个很大的cosmos-db集合,我想重命名该集合的某些属性,我发现我可以实现C#应用程序,该应用程序在集合文档上循环,并在每个文档中替换它们,但是此解决方案将根据集合大小需要很长时间。 在Azure Portal上是否还有其他解决方案(功能或存储过程)或SDK,可以在较短的时间内为我们提供相同的功能?
示例:
旧文件 { 码, CName, 地址 }
我想将属性重命名为 { 客户代码, 顾客姓名, 客户地址 }
答案 0 :(得分:0)
正如您在问题中提到的,您可以使用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.
}
}
}
}