title: Use mongoose populate to "join" matching subrecords
body: <p>Using node.js, mongoose (3.5+), mongodb.  Have got two collections in the DB:</p>
  
  <pre><code>var AuthorSchema = new mongoose.Schema({
      name: { type: String },
  });
  
  var StorySchema = new mongoose.Schema({
      title: { type: String },
      author: { type: type: Schema.Types.ObjectId },
  });
  </code></pre>
  
  <p>What I would like to do is retrieve an author and populate it with a subcollection (say, "stories") that is looked up from Story and match the author.  Yes, much like a SQL join.</p>
  
  <p>All of the examples out there work on the AuthorSchema having an array of objectids that reference StorySchema objects - that works fine.  But I want to go the opposite direction; partly due to minimizing insert/updates.  If I follow the example, adding a new store requires adding a new Story document and updating the Author.  I want to just insert a new Story that references the Author. </p>
  
  <p>I suspect that populate() is the right way to go, but can't get it to work.  I'm doing something like this:</p>
  
  <pre><code>Author.find({name: 'Asimov').populate({
      path: 'stories',
      model: 'Story',
      match: {'author': this['_id']},
  }).exec(function(err, authors) {
    console.log(authors);
  })
  </code></pre>
  
  <p>But this doesn't return any stories member in the returned authors.  Is this not a populate() solution?  Do I really need to structure the schemas differently?  Or is there some other feature of mongoose/mongo that would do what I'm looking for.</p>