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

如何对MongoDB文档中的哈希执行此查询(使用Mongoid),mongodb,mongoid,Mongodb,Mongoid,我用的是Mongoid。我有一个如下所示的文档: Pet: foo: {bar: 1, foobar: 2} another_attr: 1 在这种情况下,最好使用Mongoid,我如何查询其他属性等于1的所有bar值大于0的宠物?在MongoShell中: db.pets.find({"foo.bar":{$gt:0}, another_attr:1}); 在mongoid中: Pet.where(:'foo.bar'.gt => 0, :another_attr =>

我用的是Mongoid。我有一个如下所示的文档:

Pet:
  foo: {bar: 1, foobar: 2}
  another_attr: 1
在这种情况下,最好使用Mongoid,我如何查询其他属性等于1的所有bar值大于0的宠物?

在MongoShell中:

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

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

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

db.pet.find( {"foo.bar" : {$gt : 0}})
然后,要同时要求另一个_attr等于1,只需在查询中添加另一个要求:

db.pet.find( {"foo.bar" : {$gt : 0} , another_attr : 1 } )
您可以在此处找到有关高级查询的文档: