| The And filter builder had this comment 'Expressions like ((A == 1) AND (B == 2)) are basically implied. So just build up all sub expressions'. Which is true for an AND expressions with 2 different properties, however for an AND on the same property '((A > 1) AND (A <= 2))' this _expression_ will overwrite the first _expression_ with the second since the key is the same. IE { "A" : { "$lte" : 2 } }, rather than the correct _expression_ { "$and" : [{ "A" : { "$gt" : "0" } }, { "A" : { "$lt" : "10" } }] } |