問題タブ [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.
sql - postgresでjsonの任意のキーの値をフィルタリングする方法
users
というjsonb
フィールドを持つテーブルがありますdata
。特定の文字列に一致する列の値を持つすべてのユーザーを取得する必要があります。data
例えば:
data
に一致する値を持つユーザーを取得したいのですが'b2'
、この場合は になります'user2'
。
これをエレガントな方法で行う方法はありますか?すべてのユーザーからすべてのキーを取得しdata
、手動でクエリを作成できますが、高速でもエレガントでもありません。
さらに、一致したキーと値を取得する必要がありますが、まず最初に。
sql - json 内からテキスト クエリを実行する方法
結果が のレコードを検索する必要があり"Achieved"
ます。text
データは、 Postgres 9.4の列にある JSON オブジェクトです。
私は使用してみました:
ただし、単語のインスタンスが"Achieved"
と同じ場所で一致するとは限りません"Legal"
。以下のサンプル データでわかるように、このGoals Array
セクションでは、進行状況が更新されている可能性があります##
。コメントは説明のために私が書いたものです。(有効な JSON 形式を取得するには、それらを削除する必要があります!)
クエリはステータスを正常に取得しますが、最新のステータス更新として"Legal"
2 番目の条件が一致しない場合があります。"Achieved"
JSON でのテキスト クエリを読んだことがありますが、この構造では途方に暮れています。jsonlint.com に配置すると、正しい JSON として検証されます。誰か助けてくれませんか?
以下は、完全なクエリとそれに続くデータのサンプルです。
の値の例notes.data
:
postgresql - postgres9.4 は jsonb をループします: key:val ペアの val を選択する方法
この plpgsql スクリプトは、一連の jsonb オブジェクトの key:value ペアからキーを選択しますが、各ペアの値を選択する方法は?
マンページhttp://www.postgresql.org/docs/9.4/static/functions-json.htmlは、戻り値がキーテキスト、値テキストのセットであることを示しているため、可能である必要があります。この投稿Postgres - array for loopは配列の質問に答えます。また、jsonb_each() および jsonb_array_elements() をイテレータを jsonb に変更してみましたが、「オブジェクトから要素を抽出できません」というエラーが表示されました
ruby-on-rails - Ruby on Rails jsonb (ハッシュ) の日付を検証する
Postgres db に jsonb 列があり、ユーザーの pref["date"] date_field を持つフォームがあります。
日付への変換が失敗した場合、エラーのない日付である user.pref["date"] を日付に変換して検証するにはどうすればよいですか?
sql - PostgreSQL の json 配列でインデックスを使用する
元のstackoverflow questionを参照して、Postgres 9.4の配列のオブジェクトのキーにginインデックスを適用しようとしていますが、最初の回答に記載されている結果が得られません。
エラーを修正していただけますか?
私が従った手順は以下に書かれています。
パート 1: テーブルとインデックスの作成
パート 2: クエリ
このクエリは空の結果を返します。また、 GIN インデックス
を使用しようとしました。jsonb_path_ops
代替インデックスとクエリ:
json - WHERE BETWEEN 句の PostgreSQL jsonb 値
データベース テーブル (a_table) に jsonb フィールドがあり、その中に int 値があります。
WHERE 句を使用して、このフィールド ("ghk") によるフィルターで SELECT を作成しようとしています。
このようなクエリを作成するにはどうすればよいですか? これまでのところ、jsonb の使用に関する適切なチュートリアルが見つかりませんでした。
前もって感謝します!
編集
私はこの解決策を見つけました:
それが正しいか?
json - postgresql jsonb には、第 2 レベルの key:value が含まれています
postgresql でキーをクエリする可能性はありますか: 2 番目のレベルの値
たとえば、行の jsonb フィールドは次のようになります。
次のような v_id 値を使用して、この行を照会します。
ただし、このクエリは無効です。そのようなクエリを達成するにはどうすればよいですか?
編集:
@CraigRingerのコメントによると:
ここでのポイントは、最上位のキーがわからないということです。「任意のオブジェクトについて、次の値を持つ次のキーを持つ内部オブジェクトがあるか」と言いたいのです。