filter_is_empty: NotionRubyMapping 解説 (57)

はじめに

NotionRubyMapping 解説の第57回目です。今日は値が空なものだけを抽出するfilter_is_empty をそれぞれのプロパティで確認してみます。まず、以前使っていたデータベースを取得します。

parent

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_empty).count
=> 0

ほとんどのプロパティは単に一致を確認するだけなので、一気に実行してみます。

irb(main):006> db.query_database(dps["Select"].filter_is_empty).count
=> 2
irb(main):007> db.query_database(dps["People"].filter_is_empty).count
=> 2
irb(main):009> db.query_database(dps["One Way Relation"].filter_is_empty).count
=> 2
irb(main):010> db.query_database(dps["Email"].filter_is_empty).count
=> 2
irb(main):011> db.query_database(dps["Status"].filter_is_empty).count
=> 0
irb(main):012> db.query_database(dps["Url"].filter_is_empty).count
=> 2
irb(main):014> db.query_database(dps["Name"].filter_is_empty).count
=> 2
irb(main):015> db.query_database(dps["MultiSelect"].filter_is_empty).count
=> 2
irb(main):016> db.query_database(dps["RichText"].filter_is_empty).count
=> 2
irb(main):017> db.query_database(dps["PhoneNumber"].filter_is_empty).count
=> 2
irb(main):018> db.query_database(dps["Files"].filter_is_empty).count
=> 2
irb(main):019> db.query_database(dps["LastEditedBy"].filter_is_empty).count
=> 0

おわりに

今日は、値が存在しないものを抽出するときに利用する filter_is_empty を解説しました。

CreatedByProperty のマニュアルはこちらです。その他のプロパティもここから見てください。

CreatedByProperty

NotionRubyMapping解説