はじめに
NotionRubyMapping 解説の第58回目です。今日は値が空でないものだけを抽出するfilter_is_not_empty をそれぞれのプロパティで確認してみます。まず、以前使っていたデータベースを取得します。
irb(main):002> db = Database.find "https://www.notion.so/hkob/cad035c49e5346e783 31cb5d05cbc754?v=a03e96ed79ad4d35808e7a08583396a0&pvs=4" => NotionRubyMapping::Database-cad035c49e5346e78331cb5d05cbc754
query_database のみ
まず何もフィルタをかけないデータベースの検索で件数が3件になることを確認します。
irb(main):003> db.query_database.count => 3
ここから各プロパティに対して、filter_does_not_equal でチェックがついていないものだけを抽出するフィルタリングをしてみます。最初は CreatedByProperty です。Created by は絶対に空になることがないので、0 件になります。
irb(main):004> dps = db.properties => PropertyCache irb(main):005> db.query_database(dps["CreatedBy"].filter_is_not_empty).count => 3
ほとんどのプロパティは単に一致を確認するだけなので、一気に実行してみます。
irb(main):006> db.query_database(dps["CreatedBy"].filter_is_not_empty).count => 3 irb(main):007> db.query_database(dps["Select"].filter_is_not_empty).count => 1 irb(main):008> db.query_database(dps["People"].filter_is_not_empty).count => 1 irb(main):010> db.query_database(dps["One Way Relation"].filter_is_not_empty).count => 1 irb(main):011> db.query_database(dps["Email"].filter_is_not_empty).count => 1 irb(main):012> db.query_database(dps["Status"].filter_is_not_empty).count => 3 irb(main):013> db.query_database(dps["Url"].filter_is_not_empty).count => 1 irb(main):014> db.query_database(dps["Name"].filter_is_not_empty).count => 1 irb(main):015> db.query_database(dps["MultiSelect"].filter_is_not_empty).count => 1 irb(main):016> db.query_database(dps["RichText"].filter_is_not_empty).count => 1 irb(main):017> db.query_database(dps["PhoneNumber"].filter_is_not_empty).count => 1 irb(main):018> db.query_database(dps["Files"].filter_is_not_empty).count => 1 irb(main):019> db.query_database(dps["LastEditedBy"].filter_is_not_empty).count => 3
おわりに
今日は、値が存在するものを抽出するときに利用する filter_is_not_empty を解説しました。
CreatedByProperty のマニュアルはこちらです。その他のプロパティもここから見てください。