mongoid .limit在mongoid 3.1.x中不起作用

Axi*_*xil 12 ruby-on-rails mongodb mongoid

我在mongoid 3.1.0和最新3.1.3的rails中试过这样的东西..limit不起作用.下面它应该返回1行,但它返回所有(4)

码:

@go = Gallery.limit(1)
logger.info "count: #{@go.count}"
Run Code Online (Sandbox Code Playgroud)

输出:

 count: 4
 MOPED: 54.234.11.193:10055 QUERY database=mongohqtestdatabase collection=galleries selector=  {"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (276.2010
Run Code Online (Sandbox Code Playgroud)

女士)

哪个版本的mongoid与limit()有关?

Leo*_*opd 27

limit命令工作正常,但由于某种原因count忽略了限制.如果将其强制转换为数组,您将看到限制正常.

Array(Gallery.limit(1)).length  # this gives 1
Run Code Online (Sandbox Code Playgroud)

此外,如果您实际遍历对象,您将看到限制正在运行.


Dea*_*ean 17

正如Mongoid官方回答中所建议的,我们应该使用Gallery.limit(1).count(true)

  • @Dean你的链接已经死了 (2认同)