Mongoid在使用id作为标准时在哪里找到

时间:2012-03-23 19:36:59

标签: ruby-on-rails mongodb mongoid

当使用文档的id作为我查询中的唯一条件时,区别是:

Board.only(:_id).find(params[:board_id])

Board.where(_id: params[:board_id]).only(:_id)

我唯一注意到的是,当使用将结果括在方括号中时将结果打印为json

3 个答案:

答案 0 :(得分:9)

find会返回一个文档。

where返回符合条件的文档数组。

答案 1 :(得分:4)

添加Kyle的答案:

如果未找到匹配记录:find抛出异常,where将返回空的可枚举。

答案 2 :(得分:0)

之前的答案是正确的,我只是添加它来查找一条记录而不会产生错误,相当于find的是where.first。在你的情况下

Board.where(_id: params[:board_id]).first.only(:_id)