我正在使用mongoid 6,我的项目中有两个模型:
class User
belongs_to :project
end
class Project
has_many :users
end
当我从用户实例访问项目时,我看到这个mongodb日志:
> user.project
... DEBUG -- : MONGODB ... STARTED | {"find"=>"projects", "filter"=>{"_id"=>BSON::ObjectId('5accdd5775aefb2d085087e2')}, "sort"=>{"_id"=>1}, "limit"=>1, "singleBatch"=>true}
... DEBUG -- : MONGODB ... SUCCEEDED | 0.000482198s
为什么这会使用sort
和limit
?手动找到项目时不会发生这种情况:
> Project.find(user.project_id)
... DEBUG -- : MONGODB ... STARTED | {"find"=>"projects", "filter"=>{"_id"=>BSON::ObjectId('5accdd5775aefb2d085087e2')}}
... DEBUG -- : MONGODB ... SUCCEEDED | 0.000278153s
似乎更慢并打破了mongoid查询缓存的使用。在某些情况下。