为什么这个查询在搜索这样的文档时没有使用这个索引?
我的查询:
{
"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": "..."
}
}
答案 0 :(得分:4)
$not
可能对索引很挑剔。将查询重写为:
{'unique_contact_method.enrichments.created_by.name': {$ne: enrichment_name}}
这绝对应该使用索引。