|
According to docs: https://docs.mongodb.com/manual/core/query-plans/#index-filters, Index Filters always override hints. However, according to the code path starting here $natural hint overrides index filters.
db.c.insert({a : 1})
|
db.runCommand({planCacheSetFilter: "c", query: {}, indexes: [{ a : 1 }]});
|
db.c.aggregate({$group: {_id: "$a"}})
|
db.c.explain().aggregate({$group: {_id: "$a"}})
|
db.c.explain().aggregate([{$group: {_id: "$a"}}], {hint: {$natural: 1}})
|
Log Level 5 shows "Forcing a table scan due to hinted $natural".
|