title: Aggregation filter after $lookup
body: <p>How can I add a filter after an $lookup or is there any other method to do this?</p>
  
  <p>My data collection test is:</p>
  
  <pre><code>{ "_id" : ObjectId("570557d4094a4514fc1291d6"), "id" : 100, "value" : "0", "contain" : [ ] }
  { "_id" : ObjectId("570557d4094a4514fc1291d7"), "id" : 110, "value" : "1", "contain" : [ 100 ] }
  { "_id" : ObjectId("570557d4094a4514fc1291d8"), "id" : 120, "value" : "1", "contain" : [ 100 ] }
  { "_id" : ObjectId("570557d4094a4514fc1291d9"), "id" : 121, "value" : "2", "contain" : [ 100, 120 ] }
  </code></pre>
  
  <p>I select id 100 and aggregate the childs:</p>
  
  <pre><code>db.test.aggregate([ {
    $match : {
      id: 100
    }
  }, {
    $lookup : {
      from : "test",
      localField : "id",
      foreignField : "contain",
      as : "childs"
    }
  }]);
  </code></pre>
  
  <p>I get back:</p>
  
  <pre><code>{  
    "_id":ObjectId("570557d4094a4514fc1291d6"),
    "id":100,
    "value":"0",
    "contain":[ ],
    "childs":[ {  
        "_id":ObjectId("570557d4094a4514fc1291d7"),
        "id":110,
        "value":"1",
        "contain":[ 100 ]
      },
      {  
        "_id":ObjectId("570557d4094a4514fc1291d8"),
        "id":120,
        "value":"1",
        "contain":[ 100 ]
      },
      {  
        "_id":ObjectId("570557d4094a4514fc1291d9"),
        "id":121,
        "value":"2",
        "contain":[ 100, 120 ]
      }
    ]
  }
  </code></pre>
  
  <p>But I want only childs that match with "value: 1"</p>
  
  <p>At the end I expect this result:</p>
  
  <pre><code>{  
    "_id":ObjectId("570557d4094a4514fc1291d6"),
    "id":100,
    "value":"0",
    "contain":[ ],
    "childs":[ {  
        "_id":ObjectId("570557d4094a4514fc1291d7"),
        "id":110,
        "value":"1",
        "contain":[ 100 ]
      },
      {  
        "_id":ObjectId("570557d4094a4514fc1291d8"),
        "id":120,
        "value":"1",
        "contain":[ 100 ]
      }
    ]
  }
  </code></pre>