当使用文档的id作为我查询中的唯一条件时,区别是:
Board.only(:_id).find(params[:board_id])
和
Board.where(_id: params[:board_id]).only(:_id)
我唯一注意到的是,当使用将结果括在方括号中时将结果打印为json
答案 0 :(得分:9)
find
会返回一个文档。
where
返回符合条件的文档数组。
答案 1 :(得分:4)
添加Kyle的答案:
如果未找到匹配记录:find
抛出异常,where
将返回空的可枚举。
答案 2 :(得分:0)
之前的答案是正确的,我只是添加它来查找一条记录而不会产生错误,相当于find
的是where.first
。在你的情况下
Board.where(_id: params[:board_id]).first.only(:_id)