我在旧的 Wakanda 数据存储中有很多值,我需要将其更新为一些新值。wakanda 数据浏览器页面中是否有类似 curl 的命令,可用于在表中进行大规模查找和替换?
问问题
175 次
3 回答
2
我认为没有办法在 dataBrowser 中进行大量查找/替换,但我建议您在服务器端使用查询来搜索具有您需要替换的值的记录,然后循环此集合设置新值
于 2016-03-22T09:51:44.400 回答
2
如果您的数据类被调用MyDataClass
并且您要更新的属性是myAttribute
您可以使用以下服务器端脚本:
var newValue = "new value";
ds.MyDataClass.all().forEach(function(entity){
entity.myAttribute = newValue;
entity.save();
});
如果要提交或回滚整个操作,也可以使用事务
于 2016-03-23T09:42:22.780 回答
2
正如其他答案中提到的,您最好循环一个集合。Wakanda 没有像您在许多其他数据库中看到的那样大规模替换的概念。
var myCollection = ds.DataClassName.query("attributeName == :1", "valueToFind");
myCollection.forEach(function(e){
e.attributeName = "newValue";
e.save();
});
所以一个假的“人”数据类型可能看起来像这样:
var blankFirsts = ds.Person.query("firstname == :1", "");
blankFirsts.forEach(function(person){
person.firstname = "no name";
person.save();
});
于 2016-03-23T23:14:35.900 回答