带有mongoid的新手。
使用
之间是否存在任何性能影响差异Model.where(:name => "XYZ").first
和
Model.find_by(:name => "XYZ")
我在控制台中看到这两个查询在查询中使用“限制1”(当我在Postgres上使用时)。在Mongoid中是否有相同的行为?
答案 0 :(得分:3)
似乎find_by
内部使用where
和first
def find_by(attrs = {})
result = where(attrs).find_first
if result.nil? && Mongoid.raise_not_found_error
raise(Errors::DocumentNotFound.new(self, attrs))
end
yield(result) if result && block_given?
result
end
答案 1 :(得分:0)
以上评论解释了内部原理。我看到了性能上的比较。这是github代码和结果链接。 Performance Comparison