Basically the problem is that you have a duplicate key in your array so the latter overwrites the prior so your query is only doing the $in
.
Most poeople look to $and
to solve this problem however, very few know that actually:
'id'=>array('$gt'=>-1, '$in'=>array(4,5))
Will also solve it. You can just chain your constraints for that field.