| Steps To Reproduce: |
> t.drop();
|
> for (var i = 0; i < 20; i++) { t.insert({_id: i, a: i, b: 1}); }
|
> t.ensureIndex({a: 1});
|
> t.ensureIndex({b: 1});
|
|
// Run a query twice. The first run causes a plan to be cached. The second
|
// adds a feedback entry.
|
> t.find({a: {$lt: 3}, b: 1}).next()
|
> t.find({a: {$lt: 3}, b: 1}).next()
|
|
// Get the plan cache entry.
|
> t.getPlanCache().getPlansByQuery({a: {$lt: 3}, b: 1})
|
[
|
...
|
"feedback" : {
|
"nfeedback" : 1,
|
"averageScore" : 0, // XXX: incorrect!
|
"stdDevScore" : 0, // XXX: incorrect!
|
"scores" : [
|
{
|
"score" : 1.7503
|
}
|
]
|
},
|
"filterSet" : false
|
},
|
...
|
]
|
|
// After running the query a few more times, the average and std dev are computed.
|
> for (var i = 0; i < 20; i++) { t.find({a: {$lt: 3}, b: 1}).next(); }
|
> t.getPlanCache().getPlansByQuery({a: {$lt: 3}, b: 1})
|
[
|
...
|
"feedback" : {
|
"nfeedback" : 20,
|
"averageScore" : 1.7502999999999997,
|
"stdDevScore" : 2.278129578503827e-16,
|
"scores" : [
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
},
|
{
|
"score" : 1.7503
|
}
|
]
|
},
|
...
|
]
|
|