Details
Description
This validation failure does not occur in 3.2.7. It was introduced in 3.3.6 and seems indicative of a validate() bug rather than a dataloss issue.
Repro script:
'use strict';
|
|
|
var coll = db.geo_partial;
|
coll.drop();
|
|
|
coll.insert({x: 1});
|
coll.ensureIndex({x: '2dsphere'}, {partialFilterExpression: {a: {$eq: 1}}});
|
|
|
coll.validate(true);
|
Validate output:
{
|
"ns" : "test.geo_partial",
|
"valid" : false,
|
"warnings" : [ ],
|
"errors" : [
|
"exception during index validation: 16755 Can't extract geo keys: { _id: ObjectId('5783dbe528816e25ea30fe08'), x: 1.0 } geo element must be an array or object: x: 1.0"
|
],
|
"advice" : "A corrupt namespace has been detected. See http://dochub.mongodb.org/core/data-recovery for recovery steps.",
|
"ok" : 1
|
}
|