title: Updating existing Parse object in Cloud Code
body: <p>I am using Parse for my backend and want to search for existing friend requests and update those instead of creating new ones (if there is already an existing one).</p>
  
  <p>I thought I figured out how to do it but when I submit new friend requests they get created as new objects instead of updating the old one, even though I found an existing request.</p>
  
  <p>Here is the code I am using:</p>
  
  <pre><code>Parse.Cloud.beforeSave("FriendRequest", function(request, response) {
  
      //search for an existing friend request with the same "from" and "to" 
      var query = new Parse.Query("FriendRequest");
          query.equalTo("from", request.object.get("from"))
          .equalTo("to", request.object.get("to"));
  
      query.find({
        success: function(results) {
          if(results.length &gt; 0)
          {
           var result = results[0];
  
           //the new request id is undefined as expected
           console.log("request id: " + request.object.id);
  
           //the result id is valid for an object in the db as expected
           console.log("result id: " + results[0].id);
  
           //set the id of the request to the id of the existing db object
           request.object.id = results[0].id;
  
           //the valid id is now in the request object id
           console.log("request id: " + request.object.id);
  
               //after response.success, the database shows a new entry
               //with a different id
           //instead of updating the existing entry
           response.success();
           }
           }
      });
  
  });
  </code></pre>
  
  <p>There isn't a lot going on here. The query does come back successful with the correct entry in the database.  I can confirm that I get the correct objectId for the existing item in the database.  Any thoughts or ideas are appreciated!</p>