hash - 在Mongoid中,查询哈希

  显示原文与译文双语对照的内容
0 0

我创建了一个产品文档,如下所示:


#<Product _id: 539ac4285468691170000000, created_at: 2014-06-13 09:28:08 UTC, updated_at: 2014-06-13 10:28:57 UTC, properties: {"first"=>{"element_1"=>"test","element_2"=>"bigtest"},"second"=>"layer_one"}>

现在我已经阅读了很多关于使用 where() 查询的内容。 但是我还没有找到任何信息是否可能,如果是的话,如何提取一个收费的哈希表的单个元素。

如何查询这样的内容:


ruby 2.0.0p451> w = Product.last
ruby 2.0.0p451> w.properties.first
ruby 2.0.0p451> w.properties.first.element_2
ruby 2.0.0p451> w.properties.first.push("element_3"=>"grandetest")

请指向一个引用,我可以看到更多的Mongoid查询示例,特别是提取一个散列的单个组件。 非常感谢.

时间: 原作者:

0 0

这就是你需要访问哈希值的方式:


> w.properties['first']
=> {"element_1"=>"test","element_2"=>"bigtest"}

> w.properties['first']['element_2']
=>"bigtest"

> w.properties['first']['element_3'] ="grandetest"
=> {"element_1"=>"test","element_2"=>"bigtest","element_3"=>"grandetest"}

你可以使用'位置'以'element_2'的值搜索产品,例如:


> Product.where("properties.first.element_2" =>"bigtest").count
=> 1

我希望你会有帮助。

...