2013-03-03 65 views
0

说我有一个mongoid文档,其中有一个字段:pairs与散列的类型。当我不想在这样的哈希上查询时:Mongoid where子句红宝石散列

Doc.where(:pairs=>{"field1"=>1}) 

我得到的结果回来,因为我有成对的字段值为1。我也有超过1的值。当我这样做,nil返回:

Doc.where(:pairs=>{"field1"=>{"$gt"=>0}}) 

这似乎并没有工作,我确实有关键field1对和值大于0。任何人都可以提供我为什么这不起作用的信息?

回答

0

试试吧:Dco.where(:pairs.gt => 0)
欲了解更多详情mongoid querying请参阅以下链接。
http://mongoid.org/en/mongoid/docs/querying.html

+0

@ganesh使用该查询,您不指定哪个散列键应具有大于0的值,但散列中的所有键:对,以便可能会返回比预期更多的文档。由于另一个带有hash:pairs的文档可以有一个键值为2的字段2和一个值为2的字段1,你提供的查询也会返回这个文档,而在我的问题中它不应该。 – Tinuz77 2013-03-06 11:20:22