如何对MongoDB文档中的哈希执行此查询(使用Mongoid)

时间:2012-09-11 15:01:07

标签: mongodb mongoid

我正在使用Mongoid。我有一个类似于以下内容的文档:

Pet:
  foo: {bar: 1, foobar: 2}
  another_attr: 1

在这种情况下,最好使用Mongoid,如何查询条形值大于0的所有宠物,其中another_attr等于1?

2 个答案:

答案 0 :(得分:7)

在mongo shell中:

db.pets.find({"foo.bar":{$gt:0}, another_attr:1});

在mongoid:

Pet.where(:'foo.bar'.gt => 0, :another_attr => 1)

答案 1 :(得分:0)

要查找条形值大于0的所有宠物,您可以在查询中使用$ gt关键字。要访问嵌套字段(bar),可以使用点表示法:

db.pet.find( {"foo.bar" : {$gt : 0}})

然后,为了还要求another_attr等于1,您可以在查询中添加另一个需求:

db.pet.find( {"foo.bar" : {$gt : 0} , another_attr : 1 } )

您可以在此处找到有关高级查询的文档:http://www.mongodb.org/display/DOCS/Advanced+Queries