如何在parse.com中更新现有值并保存新值

时间:2014-08-23 09:30:18

标签: javascript parse-platform

我在我的项目中使用解析应用程序,我从解析中看到了文档,他们提到了保存和单独更新。我想像sql一样。如果行存在于表中,它应该更新值,如果不存在,它应该新保存值。我怎么能在单一功能中做到这一点。 这是我的代码

Parse.initialize(parseId.APPLICAITONID, parseId.JAVASCRIPTID);
    var locationMobileMsgs = Parse.Object.extend("LocationMobileMessages");
    var locationMsgs = new Parse.Query(locationMobileMsgs);
    locationMsgs.equalTo('LocationId',123);
    locationMsgs.find({success:function(data){          
       // if the values are not there i need to use query.save here.
       // otherwise i can do below
        data.set('BodyText',msgObj.mobileTextarea);
        data.set('HeaderText',msgObj.mobileHeadline);
        data.set('LocationId',msgObj.locationId);
        data.save();
        console.log('saved');

        },error:function(errData){
            console.log('error occured');
            res.json(errData);
        }
    });

1 个答案:

答案 0 :(得分:0)

我认为您可以简化使用if声明:

locationMsgs.find({success: function (results) {
    // if the values are not there i need to use query.save here.
    if (results.length === 0) {
        //insert...
    } else {
        // otherwise i can do below
        results.forEach(function (data) {
            data.set('BodyText', msgObj.mobileTextarea);
            data.set('HeaderText', msgObj.mobileHeadline);
            data.set('LocationId', msgObj.locationId);
            data.save();
        });
    }, error: //...

或者,如果您最多只有一个要更新的对象:

locationMsgs.first({success: function (data) {
    // if the values are not there i need to use query.save here.
    if (!data) {
        //insert...
    } else {
        // otherwise i can do below
        data.set('BodyText', msgObj.mobileTextarea);
        data.set('HeaderText', msgObj.mobileHeadline);
        data.set('LocationId', msgObj.locationId);
        data.save();
    }, error: //...