title: Problems using meteors upsert
body: <p>using METEOR@1.1.0.2 and doing an <code>upsert</code> on the server side gives me problems. It either complains that the syntax is wrong for insert or update, or am I just doing it wrong?</p>
  
  <p>The code below will work on inserts but on updates throw: </p>
  
  <blockquote>
    <p>Error: Update parameter cannot have both modifier and non-modifier fields.</p>
  </blockquote>
  
  <pre><code>Mail.upsert({ ma_user_id: userId }, {
    ma_user_id: userId,
    ma_address: userEmail,
    ma_verified: false
  }, function (e, r) {
    console.log(e, r);
  });
  </code></pre>
  
  <p>The code below works on updates but will throw this error on inserts:
  MongoError:</p>
  
  <blockquote>
    <p>The dollar ($) prefixed field '$exists' in 'removed.$exists' is not valid for storage.</p>
  </blockquote>
  
  <pre><code>Mail.upsert({ ma_user_id: userId }, { $set: {
      ma_user_id: userId,
      ma_address: userEmail,
      ma_verified: false
    }
  }, function (e, r) {
    console.log(e, r);
  });
  </code></pre>
  
  <p>I have also tried this which gives me the error on update: </p>
  
  <blockquote>
    <p>Error: Update parameter cannot have both modifier and non-modifier fields.</p>
  </blockquote>
  
  <pre><code>Mail.update({ ma_user_id: userId }, {
      ma_user_id: userId,
      ma_address: userEmail,
      ma_verified: false
    }, {
      upsert: true
    }, function (e, r) {
      console.log(e, r);
    });
  </code></pre>