title: Mongoose update not persisting
body: <p>Using mongodb and mongoose, I can not get the $push to append an element to my array. After I run this, I check in the mongo shell and the new append is not there. Not sure what I am doing wrong:</p>
  
  <pre><code>UserModel.findOne({ firstName: "bob" }, 'pets', function(err, user) {
    UserModel.update(user, {
      $push: {
        pets: {
            name: "pear", type: "pig"  
        }
      }
    }, function(err, numAffected, raw) {
        if (err) console.log(err);
        console.log('updated ' + JSON.stringify(numAffected));
    });
  });
  </code></pre>
  
  <hr>
  
  <pre><code>Mongoose: users.ensureIndex({ username: 1 }) { unique: true, background: true }  
  Mongoose: users.findOne({ firstName: 'bob' }) { fields: { pets: 1 } }  
  Mongoose: users.update({ pets: [ { type: 'dog', name: 'apple' }, { type: 'cat', name: 'felix' } ], _id: ObjectId("56a53d45a428cbde3c4299f8") }) { '$push': { pets: { name: 'pear', type: 'pig' } } } {} 
  updated {"ok":1,"nModified":0,"n":0}
  </code></pre>
  
  <hr>
  
  <pre><code>&gt; bob = db.users.find()[0]
  {
      "_id" : ObjectId("56a53d45a428cbde3c4299f8"),
      "firstName" : "bob",
      "lastName" : "smith",
      "username" : "bob123",
      "pets" : [
          {
              "name" : "apple",
              "type" : "dog"
          },
          {
              "name" : "felix",
              "type" : "cat"
          }
      ],
      "__v" : 0
  }
  &gt; 
  </code></pre>
  
  <p><strong>UPDATE</strong>:
  After changing the type field, still not having success. This time I am just trying to push <code>{ $push: { pets: "sssss" } }</code>. </p>
  
  <pre><code>UserModel.findOne({ firstName: "bob" }, 'pets', function(err, user) {
    UserModel.update(user,
      { $push: { pets: "sssss" }},
      function(err, numAffected, raw) {
        if (err) console.log(err);
        console.log('updated ' + JSON.stringify(numAffected));
    });
  });
  </code></pre>
  
  <p>Here is the actual mongodb log:</p>
  
  <pre><code>2016-01-29T03:14:37.030+0000 I COMMAND  [conn17] command curves.$cmd command: update { update: "users", updates: [ { q: { pets: [ { petType: "pig", name: "pear" } ], _id: ObjectId('56aad0a3ef5848c231ec80ed') }, u: { $push: { pets: "sssss" } }, upsert: false, multi: false } ], ordered: true, writeConcern: { w: 1 } } ntoskip:0 keyUpdates:0 writeConflicts:0 numYields:0 reslen:55 locks:{ Global: { acquireCount: { r: 1, w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 1 } } } protocol:op_query 0ms
  </code></pre>