Alm*_*lho 8 ruby-on-rails count limit mongodb mongoid
当在我的Rails应用程序某型号查询,它返回正确的结果,摘取size
,length
或count
信息,即使使用limit
标准.
recipes = Recipe
.where(:bitly_url => /some.url/)
.order_by(:date => :asc)
.skip(10)
.limit(100)
recipes.size # => 57179
recipes.count # => 57179
recipes.length # => 57179
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么会这样,它会一直显示食谱集合的总数,而且自从我使用以来,正确的值应该是100 limit
.
count = 0
recipes.each do |recipe|
count += 1
end
# WAT
count # => 100
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?谢谢!
-
Rails版本:3.2.3
Mongoid版本:2.4.10
MongoDB版本:1.8.4
从精细手册:
- (整数)长度
又称:大小获取与查询选择器匹配的文档数.
但是.limit
并没有真正改变查询选择器,因为它不会更改查询匹配的内容,.offset
并且.limit
会更改返回的匹配段.这与ActiveRecord的行为不匹配,文档对于这个微妙的观点并不完全明确.但是,Mongoid的行为与MongoDB shell的行为相匹配:
> db.things.find().limit(2).count()
23
Run Code Online (Sandbox Code Playgroud)
我的things
收藏包含23
文件,你可以看到count
忽略了limit
.
如果您想知道返回了多少结果,那么您可以to_a
先:
recipes.to_a.length
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1273 次 |
最近记录: |