始める無料で始める

#> と #>>

これまで、Postgres の JSON で入れ子のドキュメントデータを問い合わせるときは、->->> 演算子をつなげて使ってきました。しかし、深く入れ子になったデータでは、ステートメントが長くなり、読みづらく保守しづらくなります。これを解決するために、Postgres には #>#>> 演算子が用意されています。この演習では、これらの演算子を使って、下図の形式の nested_reviews テーブルを問い合わせる練習をします。

nested_reviews table, showing sample data.

pandaspd としてインポート済みで、接続オブジェクトは db_engine という変数に作成・保存されています。頑張っていきましょう!

この演習はコースの一部です

NoSQL入門

コースを見る

演習の手順

  • json_typeof() 関数と #> 演算子を使って、nested_reviews テーブルの review 列にある statement キーの値のデータ型を調べてください。
  • review 列の中の locations オブジェクトに入れ子になっている branch フィールドを、テキストとして取得し、エイリアスを branch にしてください。
  • location オブジェクトに入れ子になっている zipcode フィールドをテキストとして返し、エイリアスを zipcode にしてみてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Attempt to query the statement, nested branch, and nested
# zipcode fields from the review column
query = """
	SELECT 
    	____(review ____ '{statement}'),,
        review ____ _____ AS ____,
        ____
    FROM nested_reviews;
"""

# Execute the query, render results
data = pd.read_sql(query, db_engine)
print(data)
コードを編集して実行