inner query is not covered according to docsExamined.
If I explain() inner query itself, it seems that $expr breaks this: .aggregate([{$match: {la: "va", lb: "vb", _id: 0}}, {$project:...}]) will be covered, while equivalent with $expr (.aggregate([{$match: {$expr: ...}}, {$project:...}]) will be not.
Is this a limitation of covered queries or am I missing something?
@steevej: Ratio of keysExamined and docsExamined is approximately one, so I assume index is used. But, IMHO, fetching of small documents can also impact performance in situation, when index itself would fit into memory, but index and documents would not and documents in collection are not sorted by index used in query. In such case, fetching document would cause cache pages reads and eviction and thus would impact performance.