0
PG jsonbフィールドの新機能です。 私は、例えば、以下のPostgresql jsonb traversal
{
"RootModule": {
"path": [
1
],
"tags": {
"ModuleBase1": {
"value": 40640,
"humanstring": "40640"
},
"ModuleBase2": {
"value": 40200,
"humanstring": "40200"
}
},
"children": {
"RtuInfoModule": {
"path": [
1,
0
],
"tags": {
"in0": {
"value": 11172,
"humanstring": "11172"
},
"in1": {
"value": 25913,
"humanstring": "25913"
}
etc....
を含むjsonbフィールドが深いXレベルを照会し、特定のキーのための「タグ」キーを検索する方法はあり持っています。
「ModuleBase2」と「in1」が必要なので、値を取得しますか?
基本的には、キーを見つけて構造を知らずに値を返すまで、jsonbフィールドをトラバースするクエリを探しています。
PythonまたはJSでは、単純なループまたは再帰関数は、キーを見つけるまでjsonオブジェクト(または辞書)を簡単に走査できます。
PGに組み込まれている機能はありますか?
最終的に私はdjangoでこれをしたいと思います。
編集: 私は
SELECT data.key AS key, data.value as value
FROM trending_snapshot, jsonb_each(trending_snapshot.snapshot-
>'RootModule') AS data
WHERE key = 'tags';
のようなものを行うことができます参照してくださいしかし、私はレベルを指定する必要があります。
にああすごい。それは本当にクールです。どうもありがとうございます。再帰的なSQLのアイデアは、今も私には新しいものです。よく働く。そして、where句を編集することで、さまざまな目的の結果が簡単に生成できると思います。 –
はい、条件を変更して結果を制御できます。 – klin
あなたは命を救っています –