2014-09-02 64 views
2

爲什麼此查詢在搜索這些文檔時不使用此索引?

我的查詢:

{ 
    "unique_contact_method.enrichments": { 
    "$not": { 
     "$elemMatch": { 
     "created_by.name":enrichment_name 
}}}} 

我的索引:

{ key: { "unique_contact_method.enrichments.created_by.name": 1 }, ... } 

我的文檔:

{ 
    "created_at": "...", 
    "unique_contact_method": { 
     "type" : "...", 
     "handle": "...", 
     "enrichments": [{ 
      "created_at" : "...", 
      "created_by" : { 
       "name"  : "...", 
       "version" : "..." 
      }, 
      "attrs" : { /* ... */ } 
      }, /* ... */ 
     ], 
     "master_id_doc_id": "..." 
    } 
} 

回答

4

$not可以挑剔使用索引。重寫查詢爲:

{'unique_contact_method.enrichments.created_by.name': {$ne: enrichment_name}} 

那應該肯定使用索引。