title: MongoDB with Mongoose - Find only certain child documents
body: <p>MongoDB 3.0.7 and Mongoose 4.3.4.</p>
  
  <p>Schema:</p>
  
  <pre><code>var schema = new mongoose.Schema({
      confirmed: { type: Boolean, default: false },
      moves: [new mongoose.Schema({
          name: { type: String, default: '' },
          live: { type: Boolean, default: true }
      })]
  });
  mongoose.model('Batches', schema);
  </code></pre>
  
  <p>Query:</p>
  
  <pre><code>var Batch = mongoose.model('Batches');
  var query = {
      confirmed: true,
      moves: {
          $elemMatch: {
              live: true
          }
      }
  };
  Batch.find(query).exec(function(err, batches){
      console.log('batches: ', batches);
  });
  </code></pre>
  
  <p>I need to return all batches that are <code>confirmed</code>, and all moves within the returned batches that are <code>live</code>.</p>
  
  <p>At the moment, the above is returning only the <code>confirmed</code> batches (which is what I want), but <strong>all</strong> the <code>moves</code> in each returned batch (which is not what I want). So the limiting of moves by the <code>live</code> flag is not working.</p>
  
  <p>How do I limit the sub-documents that are returned..?</p>
  
  <p>Ideally, I would like to keep everything that controls the data returned within <code>query</code> passed to <code>find</code>, and not have to call more methods on <code>Batch</code>.</p>