我正在使用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
应该返回满足查询的每条记录。
有没有人知道造成这种情况的原因是什么?
答案 0 :(得分:3)
注意不要将 Moped 语法与 Mongoid 语法混淆。对于Mongoid,文档描述了 find 方法:
根据ID查找文档或多个文档。如果任何ID不匹配,将默认引发错误
如果你真的想要每条记录,Invoice.all
可以做到这一点。 (另外要小心你的find_by方法.Mongoid的语法与mongo有点不同,所以你不必在你的params周围使用curces。)