-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Query
-
None
When $or produces a single branch, the query can be simplified to contain just the branch on the top level. For example:
irb(main):008:0> Band.or(hello:1) => #<Mongoid::Criteria selector: {"$or"=>[{"hello"=>1}]} options: {} class: Band embedded: false> # equivalent to => #<Mongoid::Criteria selector: {"hello"=>1} options: {} class: Band embedded: false>
Note that, per https://www.mongodb.com/docs/mongoid/master/reference/queries/#logical-operations, this simplification must only be performed when the left side of .or doesn't have any conditions and right side has only one condition, i.e. it is insufficient to just check the arguments to .or.
- related to
-
MONGOID-5178 $and/$or/$nor with empty array should be ignored from criteria (or return none, as appropriate)
- Closed