Details
-
Improvement
-
Status: Closed
-
Major - P3
-
Resolution: Duplicate
-
None
-
None
-
None
-
Fully Compatible
-
Query 12 (04/04/16), Query 13 (04/22/16)
Description
When a $match contains an $in array with a single exact shard key match, the aggregation is not targetted to a single shard.
The listed repro produces the following output on 3.0.10:
$ mongo aggregation.js
|
MongoDB shell version: 3.0.10
|
connecting to: test
|
{ "e1" : null }
|
{
|
"e2" : {
|
"shardsPart" : [
|
{
|
"$match" : {
|
"a" : {
|
"$in" : [
|
1
|
]
|
}
|
}
|
}
|
],
|
"mergerPart" : [ ]
|
}
|
}
|
And the following output on 3.2.4:
$ mongo aggregation.js
|
MongoDB shell version: 3.2.4
|
connecting to: test
|
{ "e1" : null }
|
{
|
"e2" : {
|
"shardsPart" : [
|
{
|
"$match" : {
|
"a" : {
|
"$in" : [
|
1
|
]
|
}
|
}
|
}
|
],
|
"mergerPart" : [ ]
|
}
|
}
|
Notes:
- a find with / without the $in is correctly targetted to a single shard.
- I haven't tested multiple $in all targetted but it is likely that will also invoke a merge
- this issue is unrelated to
SERVER-18940as it is an exact shard key match. - This issue is an related but distinct from
SERVER-7656.
Attachments
Issue Links
- duplicates
-
SERVER-18940 Optimise sharded aggregations that are targeted to a single shard
-
- Closed
-
-
SERVER-21065 Optimizer should consider predicate with "$in" operator having a single argument to be equivalent to the equality operator
-
- Closed
-
- is related to
-
SERVER-7656 Optimize aggregation on sharded setup if first stage is exact match on shard key
-
- Closed
-