我创建了一个产品文档,如下所示:
#<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"}
您可以使用'where'以'element_2'的值搜索产品,例如:
> Product.where("properties.first.element_2" => "bigtest").count
=> 1
我希望你会有所帮助。