はじめに
NotionRubyMapping 解説の第81回目です。昨日の ascending の反対である降順並び替えに関する descending を紹介します。まず、以前使っていたデータベースを取得します。
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"]
descending
Query オブジェクトに対して定義されている descending メソッドは並び替えの順序を昇順に設定するメソッドです。どのプロパティを指定するかは引数で示します。Query オブジェクトが他に何もない場合には、Query.new で作成します。
irb(main):004> dps = db.properties => PropertyCache irb(main):005> db.query_database(Query.new.descending(dps["Name"])).map(&:title) => ["XYZ", "New title", "ABC"]
すでにフィルタなどで Query オブジェクトがあれば descending は使えるので、既存のフィルタにメソッドチェーンするのが楽です。
irb(main):006> db.query_database(dps["Status"].filter_equals("未着手").descending (dps["Name"])).map(&:title) => ["XYZ", "ABC"]
おわりに
今日は、昇順並び替えを指定する descending を紹介しました。
Query のマニュアルはこちらです。その他のマニュアルもここから見てください。