When performing a find with two filters on the same indexed date field, a reverse sort on that same date field will cause an assertion:
Assertion failure fieldsToExplode >= 1 src/mongo/db/query/planner_analysis.cpp 132
Example:
db.Coll.ensureIndex({"SomeDate.423.X": 1})
db.Coll.find({
$or: [
{
"SomeDate.423.X": { $gte: new Date(1388534400000), $lt: new Date(1420070400000) }
},
{
"SomeDate.423.X": { $gte: new Date(1356998400000), $lt: new Date(1388534400000) }
}
]
}).sort({ "SomeDate.423.X": -1 })