Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用id作为条件时vs查找的Mongoid_Ruby On Rails_Mongodb_Mongoid - Fatal编程技术网

Ruby on rails 使用id作为条件时vs查找的Mongoid

Ruby on rails 使用id作为条件时vs查找的Mongoid,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,在我的查询中将文档id用作唯一条件时,以下两者之间的区别是什么: Board.only(:_id).find(params[:board_id]) 及 我注意到的唯一一点是,当使用将结果括在方括号中的位置时,将结果打印为json将返回一个文档 其中返回符合条件的文档数组。要添加到Kyle的答案中: 如果没有找到匹配的记录:find抛出异常,where返回空的可枚举项。前面的答案是正确的,我只需添加它来查找一条记录而不引发错误,与find等价的是where.first。就你而言 Board.wh

在我的查询中将文档id用作唯一条件时,以下两者之间的区别是什么:

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


我注意到的唯一一点是,当使用将结果括在方括号中的位置时,将结果打印为json将返回一个文档


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

要添加到Kyle的答案中:


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

前面的答案是正确的,我只需添加它来查找一条记录而不引发错误,与
find
等价的是
where.first
。就你而言

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

此行为取决于Mongoid的raise\u not\u found\u错误设置(默认为true)。看见
Board.where(_id: params[:board_id]).first.only(:_id)