gpt4 book ai didi

ruby - 在 postgres Rails-4 中查询 Json 数据类型

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:53 25 4
gpt4 key购买 nike

我正在使用 Rails-4,有一个产品模型和存储的规范作为 JSON 类型

在迁移文件中,添加 add_column :products, :specifications, :json

示例产品记录是这样的

#<Product id: 1, prod_id: 525141, cat_id: 6716, category_id: 5, updated: "2013-09-24 07:37:20", created_at: "2014-03-07 12:21:34", updated_at: "2014-03-07 12:32:36", eans: ["4016032274001"], skus: ["DK-1511-010F/WH"], account_id: 2, specifications: {"network"=>["PCI-Express 2.1 16x", "CardBus", "PCI-Express 3.0 16x", "PCI 64-bit, 66MHz", "PCI 64-bit, 33MHz", "PCI 32-bit, 66MHz", "PCI 3.0", "PCI 2.3", "PCI 2.2", "PCI-X", "PCI-Express 16x", "PCI-Express 8x", "PCI-Express 4x", "PCI-Express 2.0 16x", "PCI-Express 1x", "PCI", "PC Card", "ISA", "AGP 8x", "AGP 4x", "AGP 2x", "AGP 1x"], "rating"=>[4]}>

我想查询产品的规范。例如:获取评级(规范内)等于 4 的所有产品。

是否有任何 gem 可用于实现此目的?

最佳答案

随着带有 Postgres 9.4 的 Rails 4.2 中 jsonb 的出现,如果评级字段是字符串而不是整数,您可以这样做。下面是一个例子。

Dynamic.create(payload: {"rating"=>['4']})
Dynamic.create(payload: {"rating"=>['3']})
Dynamic.where("payload -> 'rating' ? '4'").count

这将为您提供正确的记录。您必须将 json 字段更新为 jsonb。你可以按照我的回复来做到这一点 here .

您可以找到有关如何使用 jsonb in Rails 4.2 here 的更多信息.

关于ruby - 在 postgres Rails-4 中查询 Json 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22250908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com