title: Mongoose: Not able to add/push a new object to an array with $addToSet or $push
body: <p>I use Nodejs, Hapijs and Mongoose.</p>
  
  <p>I 've a schema and model as follows.</p>
  
  <pre><code>var schema = {
      name: {
          type: String,
          required: true
      },
      lectures: {}
  };
  
  var mongooseSchema = new mongoose.Schema(schema, {
      collection: "Users"
  });
  mongoose.model("Users", mongooseSchema);
  </code></pre>
  
  <p>For some reason, I need to keep "lectures"
  as mixed type.</p>
  
  <p>While saving/creating a document I create a nested property <strong>lectures.physics.topic[]</strong> where topic is an array.</p>
  
  <p>Now, I'm trying to add/push a new object to "lectures.physics.topic" using $addToSet or $push.</p>
  
  <pre><code>userModel.findByIdAndUpdateAsync(user._id, {
      $addToSet: {
          "lectures.physics.topic": {
              "name": "Fluid Mechanics",
              "day": "Monday",
              "faculty": "Nancy Wagner"
          }
      }
  });
  </code></pre>
  
  <p>But the document is simply not getting updated. I tried using $push too. Nothing worked. What could be the problem?</p>
  
  <p>I tried to another approach using mongoclient , to update the db directly .It works please find the below code which works</p>
  
  <pre><code>db.collection("Users").update({
     "_id": user._id
   }, {
   $addToSet: {
          "lectures.physics.topic": {
              "name": "Fluid Mechanics",
              "day": "Monday",
              "faculty": "Nancy Wagner"
          }
      }
   }, function(err, result) {
     if (err) {
         console.log("Superman!");
         console.log(err);
         return;
     }
   console.log(result);     
   });
  </code></pre>
  
  <p>I have to start the mongo client every time a request is hit.This is not a feasible solution.</p>