J'ai un projet ruby on rails 3 dans lequel je demande un certain nombre d'objets en utilisant un .limit (3). Ensuite, à mon avis, je parcours ces objets. Après cela, s'il y a 3 objets dans la vue, j'affiche un bouton "charger plus". Voici le code de la vue:MongoID fait une requête distincte pour .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 %>
Le size(true)
est passé un booléen pour faire en sorte que MongoId tient compte de la .limit et .Offset sur ma requête (sinon il retourne le nombre total d'objets qui correspondent, quelle que soit la limite/décalage). Voici les lignes du journal de développement pertinentes:
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})
Ma question est: ne MongoId une requête séparée, pour mon @objects.size(true)
? J'imagine que le ['$cmd']
pourrait indiquer le contraire, mais je ne suis pas sûr.
Merci pour le lien, on dirait que vous aviez raison. Très appréciée! –