Possible to get different results between 2.5.5-pre and 2.4 using $not and $lte operators. Seems likely to me this works with $gt, $gte, and $lte
2.4.9:
> mydb.r.insert({_id: 0}) > mydb.r.find({_id: {$not: {$lte: ISODate("9999-12-31")}}}) > mydb.r.find({_id: {$gt: ISODate("9999-12-31")}})
2.5.5-pre:
> db.r.insert({_id: 0}) SingleWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 1, "nUpserted" : 0, "nUpdated" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] }) > db.r.find({_id: {$not: {$lte: ISODate("9999-12-31")}}}) { "_id" : 0 } > db.r.find({_id: {$gt: ISODate("9999-12-31")}})
- duplicates
-
SERVER-12495 Queries with {$not: {$lt: 0}} are not the same as {$gte: 0}
- Closed