Wakanda 数据存储 - 查找和替换?
Wakanda Datastore - Find and Replace?
我在遗留的 Wakanda 数据存储中有很多值,我需要将其更新为一些新值。 wakanda 数据浏览器页面中是否有类似 curl 的命令可用于在 table 中进行大量查找和替换?
我不认为有办法在数据浏览器中做大量的 find/replace,
但我建议你在服务器端使用一个查询来搜索你需要替换的值的记录,然后在这个集合上循环设置新值
如果您的数据类称为 MyDataClass
并且您要更新的属性是 myAttribute
您可以使用以下服务器端脚本:
var newValue = "new value";
ds.MyDataClass.all().forEach(function(entity){
entity.myAttribute = newValue;
entity.save();
});
如果要提交或回滚整个操作,也可以使用 transaction
如其他答案中所述,您最好循环访问一个集合。像您在许多其他数据库中看到的那样,Wakanda 中没有大规模替换的概念。
var myCollection = ds.DataClassName.query("attributeName == :1", "valueToFind");
myCollection.forEach(function(e){
e.attributeName = "newValue";
e.save();
});
所以伪造的 "person" 数据类型可能如下所示:
var blankFirsts = ds.Person.query("firstname == :1", "");
blankFirsts.forEach(function(person){
person.firstname = "no name";
person.save();
});
我在遗留的 Wakanda 数据存储中有很多值,我需要将其更新为一些新值。 wakanda 数据浏览器页面中是否有类似 curl 的命令可用于在 table 中进行大量查找和替换?
我不认为有办法在数据浏览器中做大量的 find/replace, 但我建议你在服务器端使用一个查询来搜索你需要替换的值的记录,然后在这个集合上循环设置新值
如果您的数据类称为 MyDataClass
并且您要更新的属性是 myAttribute
您可以使用以下服务器端脚本:
var newValue = "new value";
ds.MyDataClass.all().forEach(function(entity){
entity.myAttribute = newValue;
entity.save();
});
如果要提交或回滚整个操作,也可以使用 transaction
如其他答案中所述,您最好循环访问一个集合。像您在许多其他数据库中看到的那样,Wakanda 中没有大规模替换的概念。
var myCollection = ds.DataClassName.query("attributeName == :1", "valueToFind");
myCollection.forEach(function(e){
e.attributeName = "newValue";
e.save();
});
所以伪造的 "person" 数据类型可能如下所示:
var blankFirsts = ds.Person.query("firstname == :1", "");
blankFirsts.forEach(function(person){
person.firstname = "no name";
person.save();
});