query_database: NotionRubyMapping 解説 (54)

はじめに

NotionRubyMapping 解説の第54回目です。今日からはデータベースのクエリ次に使うフィルタについて解説します。まず、以前使っていたデータベースを取得します。

parent

irb(main):002> db = Database.find "https://www.notion.so/hkob/cad035c49e5346e783
31cb5d05cbc754?v=a03e96ed79ad4d35808e7a08583396a0&pvs=4"
=> NotionRubyMapping::Database-cad035c49e5346e78331cb5d05cbc754

query_database

今日はまだ何もフィルタをかけないデータベースの検索を行います。取得したデータベースに対して query_database とします。結果は List というオブジェクトになります。

irb(main):004> pages = db.query_database
=> NotionRubyMapping::List-

Notion API では最大100件のページが取得できます。その後のデータはページネーション処理をする必要がありますが、NotionRubyMapping では裏で自動的に処理を行うのでそのことを気にする必要はありません。List は Enumerable を include しており、each や map が利用できます。

irb(main):005> pages.map(&:title)
=> ["New title", "", ""]

おわりに

今回はデータベースのクエリを解説しました。明日からは、クエリの絞り込みを実施できるフィルタについて順番に解説していきます。

Database#query_database のマニュアルはこちらです。

query_database(query = nil, dry_run: false) → List

NotionRubyMapping解説