我在我的项目中使用解析应用程序,我从解析中看到了文档,他们提到了保存和单独更新。我想像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);
}
});
答案 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: //...