title: Mongoose Update *ONE* Field if Found Otherwise Create New With All Fields
body: <p>Suppose I have a schema with multiple fields. I want to update only <em>ONE</em> field if a document matches my query. However, if not, I want to create a new document with values for all fields. Is there a way to use <code>Model.findOneAndUpdate</code> for this? </p>
  
  <p>Here is code for more concreteness and what I have tried:</p>
  
  <pre><code>var mg = require('mongoose');   
  var Record = mg.model ("record", {
    field1: Number,
    field2: Number,
    field3: Number,
  });
  
  //Update field1 ONLY if found using findOneAndUpdate, else create with all fields
  var query = {//My Query},
      update = {field1: 10},
      options = {upsert: true, new: true, setDefaultsOnInsert: true};
  
  Record.findOneAndUpdate(query, update, options, function(err,result){
    //Do stuff with doc
  });
  </code></pre>
  
  <p>The above code updates <code>field1</code> correctly, but when no document matches the query, a new document is created without <code>field2</code> or <code>field3</code></p>