如何使用javascript更新parse.com中的当前对象?

时间:2012-11-06 13:21:18

标签: javascript parse-platform

我想使用javascript更新parse.com中已有的对象;我做的是我首先用查询退回对象,但我不知道如何更新它。

这是我使用的代码,有什么不对吗?

var GameScore = Parse.Object.extend("Driver");
var query = new Parse.Query(GameScore);
query.equalTo("DriverID", "9");
query.find({
  success: function(results) {

    alert("Successfully retrieved " + results.length + "DName");

     results.set("DName", "aaaa");
    results.save();
  },
  error: function(error) {
    alert("Error: " + error.code + " " + error.message);
  }
});

5 个答案:

答案 0 :(得分:20)

问题和答案之间的差异最初可能并不明显 - 因此对于发生在此处的所有人 - 使用 query.first 而不是 query.find

query.find()  //don't use this if you are going to try and update an object

返回一个对象数组,一个没有“set”或“save”方法的数组。

query.first() //use this instead

返回一个具有这些方法的骨干样式对象。

答案 1 :(得分:15)

我找到了解决方案,以后有人需要它

这里是:

var GameScore = Parse.Object.extend("Driver");
var query = new Parse.Query(GameScore);
query.equalTo("DriverID", "9");
query.first({
  success: function(object) {

     object.set("DName", "aaaa");
    object.save();


  },
  error: function(error) {
    alert("Error: " + error.code + " " + error.message);
  }
});

答案 2 :(得分:3)

如果有人收到msg“{”code“:101,”error“:”找不到更新的对象“}”,请检查对象的类权限和ACL,以确保允许读取和写入

答案 3 :(得分:0)

执行以下操作:

var GameScore = Parse.Object.extend("Driver");
var query = new Parse.Query(GameScore);
query.equalTo("DriverID", "9");
query.find({
  success: function(results) {

   alert("Successfully retrieved " + results.length + "DName");
      // - use this-----------------
      results.forEach((result) => {
        result.set("DName", "aaaa");
      });
      Parse.Object.saveAll(results);
      // --------------------------------
 },
 error: function(error) {
   alert("Error: " + error.code + " " + error.message);
 }
});

答案 4 :(得分:0)

您可以这样做:

 var results= await query.find();
          for (var i = 0; i < results.length; i++) {
          results[i].set("DName", "aaaa");
          results[i].save();
          }