title: Return only matched sub-document elements within a nested array
body: <p>The main collection is retailer, which contains an array for stores. Each store contains an array of offers (you can buy in this store). This offers array has an array of sizes. (See example below)</p>
  
  <p>Now I try to find all offers, which are available in the size <code>L</code>.</p>
  
  <pre><code>{
      "_id" : ObjectId("56f277b1279871c20b8b4567"),
      "stores" : [
          {
          "_id" : ObjectId("56f277b5279871c20b8b4783"),
          "offers" : [
              {
                  "_id" : ObjectId("56f277b1279871c20b8b4567"),
                  "size": [
                      "XS",
                      "S",
                      "M"
                  ]
              },
              {
                  "_id" : ObjectId("56f277b1279871c20b8b4567"),
                  "size": [
                      "S",
                      "L",
                      "XL"
                  ]
              }
          ]
      }
  }
  </code></pre>
  
  <p>I've try this query: <code>db.getCollection('retailers').find({'stores.offers.size': 'L'})</code></p>
  
  <p>I expect some Output like that:</p>
  
  <pre><code> {
  "_id" : ObjectId("56f277b1279871c20b8b4567"),
  "stores" : [
      {
          "_id" : ObjectId("56f277b5279871c20b8b4783"),
          "offers" : [
              {
                  "_id" : ObjectId("56f277b1279871c20b8b4567"),
                  "size": [
                      "S",
                      "L",
                      "XL"
                  ]
              }
          ]
      }
  }
  </code></pre>
  
  <p>But the Output of my Query contains also the non matching offer with <code>size</code> XS,X and M.</p>
  
  <p>How I can force MongoDB to return only the offers, which matched my query?</p>
  
  <p>Greetings and thanks.</p>