AzabAF
AzabAF

Reputation: 632

how can i update current object in parse.com with javascript?

I want to update object i already have in parse.com with javascript; what i did is i retirevied the object first with query but i dont know how to update it.

here is the code i use, whats wrong on it?

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);
  }
});

Upvotes: 10

Views: 19144

Answers (5)

Karen Mastoyan
Karen Mastoyan

Reputation: 1

You can do it like this:

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

Upvotes: 0

Daman
Daman

Reputation: 521

Do something like this:

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);
 }
});

Upvotes: 1

Nam Le
Nam Le

Reputation: 329

If someone got msg "{"code":101,"error":"object not found for update"}", check the class permission and ACL of Object to enrure it's allowed to read and write

Upvotes: 3

Hairgami_Master
Hairgami_Master

Reputation: 5539

The difference between the question and your answer may not be obvious at first- So for everyone who has happened here- Use query.first instead of query.find.

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

returns an array of objects, an array which has no method "set" or "save".

query.first() //use this instead

returns a single backbone style object which has those methods available.

Upvotes: 22

AzabAF
AzabAF

Reputation: 632

I found the solution, incase someone needs it later

here it is:

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);
  }
});

Upvotes: 16

Related Questions