在Parse.com中使用云代码自动更新数据

时间:2015-03-30 22:13:03

标签: parse-platform cloud-code

我正在寻找一种使用云代码自动更新数据的方法。

假设我有一个班级Table。 在其中,我有三列:firstnamelastnamefullname

目前,我只有firstnamelastname个数据。列fullname仍为空。

是否可以自动填充fullname,只需合并firstnamelastname中的值?

谢谢,

2 个答案:

答案 0 :(得分:2)

@RoyH 100%有权在创建新对象时维护您的计算列。要进行初始迁移,请尝试使用云功能,例如:

var _ = require("underscore");

Parse.Cloud.define("addFullnames", function(request, response) {
    // useMasterKey if the calling user doesn't have permissions read or write to Table
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query("Table");
    // we'll call tables > 1000  an 'advanced topic'
    query.limit = 1000;
    query.find().then(function(results) {
        _.each(results, function(result) {
            var firstname = result.get("firstname") || "";
            var lastname = result.get("lastname") || "";
            result.set("fullname", (firstname + " " + lastname).trim());
        });
        return Parse.Object.saveAll(results);
    }).then(function(results) {
        response.success(results);
    }, function(error) {
        response.error(error);
    });
});

这样称呼:

curl -X POST \
  -H "X-Parse-Application-Id: your_app_id_here" \
  -H "X-Parse-REST-API-Key: your_rest_key_here" \
  -H "Content-Type: application/json" \
  https://api.parse.com/1/functions/addFullnames

你可以将_.each()中的代码分解出来,以便在这里调用一个函数,并通过beforeSave钩子来保存添加的数据。

答案 1 :(得分:1)

是的,您可以为" fullname"添加一个值。当你保存"名字"和"姓氏" (在cloudcode之前)。或者,您可以使用之前保存/保存后的云代码功能将值插入该列:

看看:

https://parse.com/docs/cloud_code_guide#webhooks-beforeSave https://parse.com/docs/cloud_code_guide#webhooks-afterSave