はじめに
NotionRubyMapping 解説の第80回目です。Query クラスの話が出てきたので、昇順並び替えに関する ascending を紹介します。まず、以前使っていたデータベースを取得します。
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 のマニュアルはこちらです。その他のマニュアルもここから見てください。