ascending: NotionRubyMapping 解説 (80)

はじめに

NotionRubyMapping 解説の第80回目です。Query クラスの話が出てきたので、昇順並び替えに関する ascending を紹介します。まず、以前使っていたデータベースを取得します。

parent

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

query_database のみ

まず何もフィルタをかけないデータベースの検索では順番は規定されません。

irb(main):003> db.query_database.map(&:title)
=> ["New title", "ABC", "XYZ"]

ascending

Query オブジェクトに対して定義されている ascending メソッドは並び替えの順序を昇順に設定するメソッドです。どのプロパティを指定するかは引数で示します。Query オブジェクトが他に何もない場合には、Query.new で作成します。

irb(main):004> dps = db.properties
=> PropertyCache
irb(main):005> db.query_database(Query.new.ascending(dps["Name"])).map(&:title)
=> ["ABC", "New title", "XYZ"]

すでにフィルタなどで Query オブジェクトがあれば ascending は使えるので、既存のフィルタにメソッドチェーンするのが楽です。

irb(main):006> db.query_database(dps["Status"].filter_equals("未着手").ascending
(dps["Name"])).map(&:title)
=> ["ABC", "XYZ"]

おわりに

今日は、昇順並び替えを指定する ascending を紹介しました。

Query のマニュアルはこちらです。その他のマニュアルもここから見てください。

Query

NotionRubyMapping解説