2011-09-30 2 views
1

레일리 3 프로젝트에서 .limit (3)을 사용하여 특정 개수의 객체를 쿼리합니다. 그런 다음, 내 견해로 볼 때, 나는이 객체들을 순환합니다. 그 후에 뷰에 3 개의 오브젝트가 있으면 "더로드"버튼을 표시합니다. 다음은 뷰 코드 :MongoID는 .count (true)에 대해 별도의 쿼리를 수행합니까?

<% @objects.each do |object| %> 
    <%= render object._type.pluralize.underscore + '/teaser', :object => object %> 
<% end %> 
<% if @objects.size(true) == 3 %> 
    #load more link here 
<% end %> 

size(true)는 mongoID 계정으로으로 제한 할 소요 있는지, 내 쿼리 .offset하는 부울 전달된다 (그렇지 않으면 관계없이의, 일치하는 개체의 총 수를 반환 한계/오프셋).

MONGODB project_development['system.indexes'].insert([{:name=>"_public_id_1", :ns=>"project_development.objects", :key=>{"_public_id"=>1}, :unique=>true}]) 
MONGODB project_development['objects'].find({:deleted_at=>{"$exists"=>false}}).limit(3).sort([[:created_at, :desc]]) 
#some rendering of views 
MONGODB project_development['system.indexes'].insert([{:name=>"_public_id_1", :ns=>"project_development.objects", :key=>{"_public_id"=>1}, :unique=>true}]) 
MONGODB project_development['$cmd'].find({"count"=>"objects", "query"=>{:deleted_at=>{"$exists"=>false}}, "limit"=>3, "fields"=>nil}) 

내 질문은 : MongoID 내 @objects.size(true)에 대해 별도의 쿼리를합니까 여기에 관련 개발 로그 라인은? 나는 ['$cmd']가 다른 것을 나타낼지도 모른다라고 생각한다. 그러나 나는 확실하지 않다.

답변

1

별칭을 추가하려면 pull request 달 전이었습니다. : size, : length : : count는 쿼리를 다시 실행하지 않도록합니다. 그것을 확인할 수 있습니다.

+0

링크를 제공해 주셔서 감사합니다. 매우 감사! –

관련 문제