title: Sails.js model - insert or update records
body: <p>Been trying out Sails.js and I'm writing an app that imports data from a third-party API and saves in into a MySQL table. Basically I'm trying to sync data over to my app for further analysis, updating my records or creating new records as needed.</p>
  
  <p>I've looked through Sails' API and I see methods to find, create and update records but no built-in method to insert/update records based on the situation. Did I overlook something, or will I need to implement this myself?</p>
  
  <p>If I have to implement this myself, does anyone know of a good design pattern for insert/update?</p>
  
  <p>This is what I think it might look like…</p>
  
  <pre><code>_.each(importedRecords, function(record){
    MyModel.find({id: record.id}).exec(function findCB(err, found){
      if(found.length){
        MyModel.update(record.id, task).exec(function(err, updated){
          if(err) { //returns if an error has occured, ie id doesn't exist.
            console.log(err);
          } else {
            console.log('Updated MyModel record '+updated[0].name);
          }
        });
      }else{
         MyModel.create(record).exec(function(err, created){
           if(err) { //returns if an error has occured, ie invoice_id doesn't exist.
             console.log(err);
           } else {
             console.log('Created client record '+created.name);
           }
         });
       }
     });
   });
  </code></pre>
  
  <p>Am I headed in the right direction, or is there a more elegant solution?</p>
  
  <p>Also, I'm dealing with a lot of different models in this app, which would mean recreating this block of code across each of my models. Is there a way I can extend the base Model object to add this functionality for all models.</p>
  
  <p>Thanks,
  John</p>