|
TypeMatchExpression::debugString() and TypeMatchExpression::toBSON() produce incorrect output for {$type: "number"} expressions. The former should produce a string containing "type: number", and the latter should produce the BSON object {$type: "number"}.
As a result, explain output for these queries are incorrect:
> db.foo.find({a:{$type:"number"}}).explain()
|
{
|
"queryPlanner" : {
|
"plannerVersion" : 1,
|
"namespace" : "test.foo",
|
"indexFilterSet" : false,
|
"parsedQuery" : {
|
"a" : {
|
"$type" : -1414812757
|
}
|
},
|
"winningPlan" : {
|
"stage" : "EOF"
|
},
|
"rejectedPlans" : [ ]
|
},
|
"serverInfo" : {
|
"host" : "rassi",
|
"port" : 27017,
|
"version" : "0.0.0",
|
"gitVersion" : "none"
|
},
|
"ok" : 1
|
}
|
>
|
As is the diagnostic log output:
2015-11-06T12:05:16.736-0500 D QUERY [conn1] Beginning planning...
|
=============================
|
Options = INDEX_INTERSECTION KEEP_MUTATIONS
|
Canonical query:
|
ns=test.fooTree: a type: -1414812757
|
Sort: {}
|
Proj: {}
|
=============================
|
|