10

我想用 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);
  }
});
4

5 回答 5

22

问题和您的答案之间的区别一开始可能并不明显-因此对于在这里发生的每个人-使用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

返回具有这些方法可用的单个主干样式对象。

于 2013-05-22T17:13:40.127 回答
16

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

这里是:

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);
  }
});
于 2012-11-06T13:29:14.620 回答
3

如果有人收到 msg "{"code":101,"error":"object not found for update"}",请检查 Object 的类权限和 ACL 以确保它可以读写

于 2015-06-19T08:01:18.233 回答
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);
 }
});
于 2018-10-29T20:46:54.407 回答
0

你可以这样做:

 var results= await query.find();
          for (var i = 0; i < results.length; i++) {
          results[i].set("DName", "aaaa");
          results[i].save();
          }
于 2019-09-07T15:22:15.670 回答