-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Minor - P4
-
None
-
Affects Version/s: 1.8.2
-
Component/s: Querying
-
None
A large number of nScannedObjects occurs when a sharded $in query contains both a limit() and sort() clause.
For example, we have a checkins collection which is sharded by
{uid: 1}and contains the index
{uid: 1, _id: -1}. A db.checkins.find({uid: {$in: [400438]}}).limit(2).sort({_id: -1}) will scan just the two documents returned. db.checkins.find({uid: {$in: [400438, 32]}}).limit(2).sort({_id: -1}) will scan thousands of documents.
The attachment walks through the example with an interactive console.
- duplicates
-
SERVER-3310 Query optimizer should efficiently handle $in and sort with compound index.
- Closed