gpt4 book ai didi

ruby-on-rails - Rails Postgres 过滤 jsonb 数组中的 jsonb 对象

转载 作者:行者123 更新时间:2023-11-29 12:25:36 27 4
gpt4 key购买 nike

假设我有一个模型 Neighborhood,它有一个 jsonb[] 字段 families,它是一个包含 json 对象的数组,具有任何类型的键值对,如下所示 [{"name":"Smiths", "count":4}, {"name":"Miller","out_on_vacation":false}, {"name":"Bennet", "house_color":"red ", "计数": 4}]

我想执行一个 activerecord 查询,以查找在其 families 数组中具有某些对象的 Neighborhoods 的 Neighborhoods。因此,如果我执行类似 Neighborhood.where({families: {count: 4}) 的操作,结果将是任何 Neighborhood 模型,其 families 字段包含一个 jsonb 对象,其键值对为 计数:4。我玩过很多不同的查询,但似乎无法让它们中的任何一个在不返回错误的情况下工作。我将如何着手编写 Activerecord 查询以获得所需的结果?

编辑:我运行了这样的迁移:

def change 
add_column :neighborhoods, :families, :jsonb, array: true, default: [], index: true
end

最佳答案

我相信你会做这样的事情:

Neighborhood.where("families -> 'count' ? 4")

本文可能对您有所帮助:http://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails

编辑:刚刚注意到您在 jsonb 中有一个数组,所以这可能行不通。

编辑 2:这在 Reddit 上得到了回答,对我也有用。在这里回答,作为我自己的引用。

Neighborhood.where %q(families @> '[{"count":?}]'), 4

关于ruby-on-rails - Rails Postgres 过滤 jsonb 数组中的 jsonb 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119817/

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