You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are using an interactor that lists models. It accepts a Mongoid::Criteria as input and a filter that is used to limit the scope of the criteria further. Occasionally, this interactor would run very slowly, and we found that in the matches? method in object_filter.rb, the value is compared against nil. This means that if the value is a potentially expensive Mongoid::Criteria object, performance could be impacted as the criteria must be resolved to perform the comparison.
This may have already been considered, but would it be possible to use .nil? for comparision instead? This would leave the criteria unresolved.
The text was updated successfully, but these errors were encountered:
It's compared to nil because we support all Ruby objects including BasicObject. Unfortunately, BasicObject doesn't work with .nil?.
Having said that, people shouldn't really be throwing around BasicObject and it added complexity to the code that I'm not thrilled with. I'd consider removing that and using .nil?. It'll have to be in a major release though since it would technically be a breaking change.
We are using an interactor that lists models. It accepts a
Mongoid::Criteria
as input and a filter that is used to limit the scope of the criteria further. Occasionally, this interactor would run very slowly, and we found that in thematches?
method inobject_filter.rb
, the value is compared againstnil
. This means that if the value is a potentially expensiveMongoid::Criteria
object, performance could be impacted as the criteria must be resolved to perform the comparison.This may have already been considered, but would it be possible to use
.nil?
for comparision instead? This would leave the criteria unresolved.The text was updated successfully, but these errors were encountered: