2017-10-02 3 views
0

私のdbからキーを選択しようとしていて、postgresキーが "_alert"で終了しているjson列の値を設定しようとしています。特定の単語を含むpostgres列のjsonキーを取得する

私はbsonでdataという名前のカラムをjsonとして持っていて、 "ram_alert"、 "temperatures_alert"、 "disk_alert"、 "cpu_alert"のような "_alert"でキーを仕上げたいだけです。

私は値を更新する必要があるかどうかを検証するためにバックエンドアプリにあるデータと比較するためにキーと値を取得する必要があります。

これを行う方法?

私はすべてselect json_object_keys(data) from devicesのキーを取得しますが、キー/値のペアを取得する方法はありますか?ここで「好き」の表現を使用する方法はありますか?

答えて

0

まず、現在のクエリは、 'デバイス'テーブルに1つのタプルがある場合にのみ機能することに注意してください。別の行を挿入してみてください、あなたが得られます。

ERROR: cannot call json_object_keys on an array 

あなたはしかこのテーブルからONE結果を持っているつもりだと確信している場合は、次のクエリは何をしたいあなたを与える必要があります。

SELECT key,value FROM devices,json_each(devices.data) where key ~ '_alert$'; 

"LIMIT 1"のようなものは、安全のためにあなたの質問に投げかけています。

+0

ありがとうございました...デバイスの_alertで終わるすべてのキーを取得したいので、 "and id = xpto"という部分を追加しました。私が "限界1"を使用する場合、私はただ一つの要素を持っていて、私はすべてを望んでいます。 –

関連する問題