У меня есть проект ruby on rails 3, в котором я запрашиваю определенное количество объектов, используя .limit (3).Затем, на мой взгляд, я перебираю эти объекты.После этого, если в представлении есть 3 объекта, я отображаю кнопку «Загрузить еще».Вот код представления:
<% @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 учитывает .limit и .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']
может указывать иначе, но я не уверен.