title: Is possible use the operators "$ne" and "$elemMatch" in same query?
body: <p>I'm trying to find all documents that <code>tipo=CD</code> and canciones does not contains subdocuments that has <code>title=Pajaritos</code> and <code>cancion=2</code></p>
  
  <p>This is what i like to achieve in <code>canciones</code> field:</p>
  
  <pre><code>not (title=Pajaritos and cancion=2)
  </code></pre>
  
  <p>I have the following collection:</p>
  
  <pre class="lang-js prettyprint-override"><code>{ 
      "tipo": "CD",
      "Artista":"Los piratas",
      "Titulo": "Recuerdos",
      "canciones": [
          {
              "cancion":1,
              "titulo":"Adios mi barco",
              "longitud": "3:20"
           },
           {
              "cancion":2,
              "titulo":"Pajaritos",
              "longitud": "4:15"
           }
       ]
  },
  { 
      "tipo": "CD",
      "Artista":"Los piratas",
      "Titulo": "Recuerdos",
      "canciones": [
          {
              "cancion":1,
              "titulo":"Adios mi barco",
              "longitud": "3:20"
          },
          {
              "cancion":3,
              "titulo":"Pajaritos",
              "longitud": "4:15" 
          }
      ]
  },
  
  { 
      "tipo": "CD",
      "Artista":"Los piratas",
      "Titulo": "Recuerdos",
      "canciones": [
          {
              "cancion":1,
              "titulo":"Adios mi barco",
              "longitud": "3:20"
          },
          {
              "cancion":3,
              "titulo":"Pajaritos",
              "longitud": "4:15" 
          },
          {
              "cancion":4,
              "titulo":"Pajaritos4",
              "longitud": "44:15" 
          }
   }
  </code></pre>
  
  <p>My query</p>
  
  <pre><code>db.media.find({"tipo" : "CD" ,"canciones" : { "$ne" : {"$elemMatch" :  {"titulo" : "Pajaritos", "cancion" : 2}}}})
  </code></pre>
  
  <p>My undesired results</p>
  
  <pre class="lang-js prettyprint-override"><code>{ "_id" : ObjectId("550f0a1c009ed3a1c9bbcdc1"), "tipo" : "CD", "Artista" : "Los piratas", "Titulo" : "Recuerdos", "canciones" : [ { "cancion" : 1, "titulo" : "Adios mi barco", "longitud" : "3:20" }, { "cancion" : 2, "titulo" : "Pajaritos", "longitud" : "4:15" } ] }
  { "_id" : ObjectId("550f0a1c009ed3a1c9bbcdc2"), "tipo" : "CD", "Artista" : "Los piratas", "Titulo" : "Recuerdos", "canciones" : [ { "cancion" : 1, "titulo" : "Adios mi barco", "longitud" : "3:20" }, { "cancion" : 3, "titulo" : "Pajaritos", "longitud" : "4:15" } ] }
  { "_id" : ObjectId("550f0a1c009ed3a1c9bbcdc3"), "tipo" : "CD", "Artista" : "Los piratas", "Titulo" : "Recuerdos", "canciones" : [ { "cancion" : 1, "titulo" : "Adios mi barco", "longitud" : "3:20" }, { "cancion" : 3, "titulo" : "Pajaritos", "longitud" : "4:15" }, { "cancion" : 4, "titulo" : "Pajaritos4", "longitud" : "44:15" } ] }
  </code></pre>
  
  <p>As you can see, the results contains <code>"titulo" : "Pajaritos"</code> which is trying to avoid.</p>
  
  <p>Trying with <code>$not</code> operator instead of <code>$ne</code></p>
  
  <pre><code>{ "_id" : ObjectId("550f173fc357b7a4e7a46e10"), "tipo" : "CD", "Artista" : "Los piratas", "Titulo" : "Recuerdos", "canciones" : [ { "cancion" : 1, "titulo" : "Adios mi barco", "longitud" : "3:20" }, { "cancion" : 3, "titulo" : "Pajaritos", "longitud" : "4:15" } ] }
  { "_id" : ObjectId("550f173fc357b7a4e7a46e11"), "tipo" : "CD", "Artista" : "Los piratas", "Titulo" : "Recuerdos", "canciones" : [ { "cancion" : 1, "titulo" : "Adios mi barco", "longitud" : "3:20" }, { "cancion" : 3, "titulo" : "Pajaritos", "longitud" : "4:15" }, { "cancion" : 4, "titulo" : "Pajaritos4", "longitud" : "44:15" } ] }
  </code></pre>