title: Mongoengine query to get only filtered embedded documents
body: <p>I have this models:</p>
  
  <pre><code>class Sub(EmbeddedDocument):
      name = StringField()
  
  class Main(Document):
      subs = ListField(EmbeddedDocumentField(Sub))
  </code></pre>
  
  <p>When i use this query, it returns all of <code>Main</code> data but i just need <code>subs</code> that their <code>name</code> is <code>'foo'</code>.</p>
  
  <p>query: <code>Main.objects(__raw__={'subs': {'$elemMatch': {'name': 'foo'}}})</code></p>
  
  <p>For example with this data:</p>
  
  <pre><code>{
    subs: [
            {'name': 'one'}, 
            {'name': 'two'}, 
            {'name': 'foo'}, 
            {'name': 'bar'}, 
            {'name': 'foo'}
          ]
  }
  </code></pre>
  
  <p>The result must be:</p>
  
  <pre><code>{
    subs: [
           {'name': 'foo'}, 
           {'name': 'foo'}
          ]
  }
  </code></pre>
  
  <p>Note that in mongodb client, that query returns this values.</p>