タグ付けされた質問 「jsonb」

9
PostgreSQLによって導入されたJSONBの説明
PostgreSQLはJSONBを導入したばかりで、ハッカーニュースですでにトレンドになっています。誰かが以前にPostgreSQLに存在していたHstoreやJSONとどのように異なるのかを誰かが説明できたら素晴らしいと思います。その利点と制限は何ですか?いつ誰かがそれを使用することを検討すべきですか?

9
Postgres 9.4でJSONBタイプの列に対して更新操作を実行する方法
Postgres 9.4データ型JSONBのドキュメントを見ると、JSONB列を更新する方法がすぐにはわかりません。 JSONBタイプと関数のドキュメント: http://www.postgresql.org/docs/9.4/static/functions-json.html http://www.postgresql.org/docs/9.4/static/datatype-json.html 例として、私はこの基本的なテーブル構造を持っています: CREATE TABLE test(id serial, data jsonb); 挿入は次のように簡単です: INSERT INTO test(data) values ('{"name": "my-name", "tags": ["tag1", "tag2"]}'); では、「データ」列をどのように更新しますか?これは無効な構文です: UPDATE test SET data->'name' = 'my-other-name' WHERE id = 1; これはどこかで文書化されていて、見落としていることは明らかですか?ありがとう。

3
JSON型内の配列要素のクエリ
jsonPostgreSQL 9.3で型をテストしようとしています。という表にと呼ばれる列 がありjsonます。JSONは次のようになります。datareports { "objects": [ {"src":"foo.png"}, {"src":"bar.png"} ], "background":"background.png" } 'objects'配列の 'src'値に一致するすべてのレポートのテーブルをクエリしたいと思います。たとえば、一致するすべてのレポートについてDBにクエリを実行することはできます'src' = 'foo.png'か?に一致するクエリを正常に作成しました"background"。 SELECT data AS data FROM reports where data->>'background' = 'background.png' しかし、"objects"値の配列があるので、私はうまくいくものを書くことができないようです。一致するすべてのレポートについてDBをクエリすることはできます'src' = 'foo.png'か?私はこれらのソースを調べましたが、それでもまだ取得できません。 http://www.postgresql.org/docs/9.3/static/functions-json.html 新しいPostgreSQL JSONデータ型内のフィールドを使用してクエリするにはどうすればよいですか? http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-highlight-json-operators/ 私もこのようなことを試しましたが、役に立ちませんでした: SELECT json_array_elements(data->'objects') AS data from reports WHERE data->>'src' = 'foo.png'; 私はSQLのエキスパートではないので、何が問題なのかわかりません。
118 sql  json  postgresql  jsonb  lateral 

1
JSON配列内の要素を見つけるためのインデックス
私は次のようなテーブルを持っています: CREATE TABLE tracks (id SERIAL, artists JSON); INSERT INTO tracks (id, artists) VALUES (1, '[{"name": "blink-182"}]'); INSERT INTO tracks (id, artists) VALUES (2, '[{"name": "The Dirty Heads"}, {"name": "Louis Richards"}]'); この質問に関係のない列が他にもいくつかあります。それらをJSONとして保存するのには理由があります。 私がやろうとしているのは、特定のアーティスト名(完全一致)を持つトラックを検索することです。 私はこのクエリを使用しています: SELECT * FROM tracks WHERE 'ARTIST NAME' IN (SELECT value->>'name' FROM json_array_elements(artists)) 例えば SELECT * FROM …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.