問題タブ [jsonb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - JSONB フィールド内のオブジェクトの Postgresql クエリ配列
私は、レシーバーと呼ばれるjsonbフィールドを持つpostgresql 9.4データベースにテーブルを持っています。行の例:
id の値のリストがあり、jsonb フィールドの配列内で、そのリストの値のいずれかを持つオブジェクトを含む行を選択したいと考えています。
それは可能ですか?これを高速化するために作成できる GIN インデックスはありますか?
indexing - ORDER BYで使用されるJSONBのネストされたフィールドを適切にインデックス化する方法は?
私は現在、新しい JSONB タイプとそれをインデックス化する適切な方法を学んでいます。次のような JSON を格納する jsonbdetails
列があります。
price->amount
私のアプリは、キーごとに選択クエリを実行します... order by details->'price'->'amount' desc nulls last
。order by
PostgreSQL 9.4 がインデックスを活用するには、フィールドとまったく同じように作成する必要があるという私の理解は正しいですか? 意味:
どういうわけか、Explain Analyst を実行したときに、このインデックスが使用されていません。
postgresql - ツリー構造でJSONBフィールドをマージするには?
ツリー構造を格納する Postgres のテーブルがあります。各ノードにはjsonb
フィールドがあります: params_diff
:
必要なのは、親チェーン全体からすべてをマージした結果を含むid
追加の生成フィールドを使用してノードを選択することです。params
params_diff
json - jsonb 列の指定されたキーと値のペアで行をフィルター処理します
Postgres 9.4 に次のテーブルがあります
記録付き:
ですべてのレコードを選択する方法はexamen ='aesc'
? 演算子->>
orを使ってみました@
。同じ方法でいくつかのフィールドを選択する方法は? JSON列で最初の「itemX」を維持する必要があります。
ruby-on-rails - Rails 4.2とPostgresql 9.4でjsonbフィールドの平均値を計算するには?
次のような複数のフィールドの値を格納する jsonb 列があります。
レコードのコレクションから平均 "a" 値を取得する必要があります。
jsonb 列ではない場合は、次のようにかなり単純です。
しかし、今必要なのは次のようなものです。
また
これを行う最も効率的な方法は何ですか?
postgresql - PostgreSQL - jsonb_each
Postgres で jsonb をいじり始めたところですが、比較的新しい概念であるため、オンラインで見つけるのが難しい例を見つけています。
以下のjsonをjsonbとして保存し、それを使用してクエリをテストしています。
offer_currencies 配列にアクセスできます
"{"value": 1220.42, "currency_code": "EUR"}" の結果が得られるため、以下のクエリを実行すると取得されます (" を ' に変更する必要があります)。
上記の理論を使用して、このクエリを作成しました
しかし、これはcsvを1列に出力します
postgresql - PostgreSQLを使用してJSONBに変数を入れる方法は?
私は PostgreSQL で JSONB を使用したインデックス作成の例を行っており、以下のようにランダムな uuid を JSON の一部に追加したいと考えています。ただし、構文を正しく取得することはできません。最も近いのは です"{"lookup_id": " || uuid || "}"
。
私のコードは次のとおりです。
arrays - JSONB は PostgreSQL 配列を役に立たなくしますか?
オブジェクト (投稿など) に「タグ」を保存するとします。リリース 9.4 では、主に 3 つの選択肢があります。
- タグとしてのテキスト[]
- jsonb としてのタグ
- タグをテキストとして (そして、JSON 文字列をテキストとして保存します)
多くの場合、3 番目は「タグ」値に対する条件付きクエリを許可しないため、問題外です。私の現在の開発では、そのようなクエリは必要ありません。タグは、投稿をフィルタリングするためではなく、投稿リストに表示されるためだけに存在します。
したがって、選択は主にtext[]
との間jsonb
です。どちらも照会できます。
何を使いますか?なぜ?
sql - 配列内のネストされたオブジェクトを使用した jsonb クエリ
という名前の列teams
を含むテーブルで PostgreSQL 9.4 を使用しています。Playersを持つすべてのチームと、そのプレーヤーの配列を取得できるクエリを探しています。jsonb
json
3
4
7
テーブルには、次のjson
データを含む 2 つの行が含まれています。
最初の行:
2 行目:
必要なチームのリストを取得するには、どのようなクエリを作成する必要がありますか? メンバー プレーヤーから配列を作成して比較するクエリを試しましたjsonb_array_elements(json -> 'members' -> 'players')->'id'
が、すべてではなく、比較されたプレーヤー ID のいずれかがチームで利用可能であるという結果しか得られませんでした。