当“find_by”检索记录时,Mongoid“find”返回nil

时间:2015-09-04 19:37:38

标签: ruby mongodb mongoid

我正在使用Mongoid访问MongoDB数据库,但是我遇到了一个奇怪的问题。我似乎只能使用find_by查询记录,因为find将始终返回nil:

invoices = Invoice.find({})
p "invoices"
p invoices
puts ''

invoice = Invoice.find_by({ _id: <ObjectId> })
p "invoice"
p invoice
puts ''

使用find_by的第二个查询将返回单个记录。根据{{​​3}},find应该返回满足查询的每条记录。

有没有人知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:3)

注意不要将 Moped 语法与 Mongoid 语法混淆。对于Mongoid,文档描述了 find 方法:

  

根据ID查找文档或多个文档。如果任何ID不匹配,将默认引发错误

如果你真的想要每条记录,Invoice.all可以做到这一点。 (另外要小心你的find_by方法.Mongoid的语法与mongo有点不同,所以你不必在你的params周围使用curces。)