title: Adding child document to existing mongodb document
body: <p>Essentially I am just trying to add a new sub-document to my existing mongodb document that has the following schema </p>
  
  <p><strong>/models/server/destination.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>// this is the "destination" model for mongoose
  var mongoose = require('mongoose')
  var Adventure = require('../models/adventure')
  
  // this is the schema that every entry will get when a new trip is made.
  var tripSchema = mongoose.Schema({
      name: { type: String, required: true },
      city: { type: String, required: true },
      dateStart: { type: Date, required: true },
      dateFinish: { type: Date, required: true },
      adventures: [Adventure]
  })
  
  // module.exports makes this model available to other file 
  module.exports = mongoose.model('Destination', tripSchema)
  </code></pre>
  
  <p><strong>/server/models/adventure.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>var mongoose = require('mongoose')
  
  var adventure = mongoose.Schema({
      site: String,
      rating: String,
      photo: String,
      website: String,
      date: Date
  })
  
  module.exports = mongoose.model('Adventure', adventure)
  </code></pre>
  
  <p>REST route to post to adventures</p>
  
  <pre class="lang-js prettyprint-override"><code>app.post('/api/destinations/:id/addAdventures', destinationsController.addAdventures)
  </code></pre>
  
  <p><strong>/server/controllers/controller.js</strong></p>
  
  <pre class="lang-js prettyprint-override"><code>module.exports.addAdventures = function(req, res) {
      var id = req.params.id;
      Destination.findOne({ _id: id }, function(err, result) {
          var adventure = new Adventure(req.body)
          var destination = result
          destination.adventures.push(adventure)
          destination.save(function(err, advresult) {
              console.log('push worked')
              res.json(advresult);
          })
      })
  }
  </code></pre>
  
  <p>When I take the adventure out of the <code>destination.adventures.push()</code> the code does not break, but when I insert adventures I get an error </p>
  
  <pre class="lang-js prettyprint-override"><code>/Travellog/node_modules/mongoose/lib/types/array.js:117
      return this._schema.caster.cast(value, this._parent, false);
                                 ^ TypeError: undefined is not a function
      at Array.MongooseArray.mixin._cast (/Travellog/node_modules/mongoose/lib/types/array.js:117:32)
      at Array.MongooseArray.mixin._mapCast (/Travellog/node_modules/mongoose/lib/types/array.js:286:17)
      at Object.map (native)
      at Array.MongooseArray.mixin.push (/Travellog/node_modules/mongoose/lib/types/array.js:299:25)
      at Query.&lt;anonymous&gt; (/Travellog/server/controllers/destinations-controller.js:28:28)
      at /Travellog/node_modules/mongoose/node_modules/kareem/index.js:177:19
      at /Travellog/node_modules/mongoose/node_modules/kareem/index.js:109:16
      at process._tickCallback (node.js:355:11)
  </code></pre>