ノウハウ

Do a search forで「OR」のものを表示させたい – Advanced filterとmerged withを使う2つの方法を解説

Do a search for でOR条件を表示させたい

Bubbleの Do a seach forで頻繁に質問を受けるものを記事にしました。

Do a search for で AまたはB(A or B)の条件に絞って表示させる方法

です。

andor の違いがよくわからない、という方に向けて簡単に説明すると、

andは「かつ
orは「または

例を挙げると

and例

・出身地が東京 かつ 管理者の人
・算数のテストが80点以上 かつ 国語のテストが80点以上の人
=====
andは、両方の条件を満たす人です

or例

・出身地が東京 または 管理者の人
・算数のテストが80点以上 または 国語のテストが80点以上の人
=====
orは、どちらかの条件を満たす人です

1つ目の例で、東京出身か管理者のどちらかに当てはまればYES(Repeating Group等で表示されます)

andorでは表示される内容、結果が異なることがわかります。

ではなぜ「or」条件の絞り込みの質問が良く来るのでしょうか?

それは初学者には馴染みのない以下のどちらかの方法を使用しなくてはならないからです。

・Advanced filter
・Merged with

さるくん
さるくん
Advanced filterやmarged withを全く使ったことがない!方もいるかもしれません。

一方「and」の方は簡単です。Search for の +Add a new constraintで条件を増やせばそれがそのまま andになるからです↓

都道府県が東京都 かつ アクセス権が管理者 のDo searchをしている例

and と orの違いがわかったところで、orの絞り込み方法を解説します!

2つの方法があります。1つ目がAdvanced filter を使う方法、もう1つがmerged with を使う方法です。表示される結果は同じです。

Advanced filterを使う

Advanced filterを使う方法を解説します。
以下の手順で行います。

①通常の Do a search forを行う
②Search for 〇〇のうしろ「more」で :filterd を選択
③List filterの「Add a new constraint」をクリック
④Clickから「Advanced…」を選択
⑤2つの条件をポチポチ選択し or でつなげる

①通常の Do a search forを行う

まずは通常のDo a search for で何も条件や制約をつけない指定をします。
例ではUserデータを使用します。そのためTypeはUserです。
(実際はご自身が使用するData typeを選択してください。)

ここまでの設定を今回の例で見ると、このようにUser一覧が表示されます。まだfilterをかけていない全てのデータが表示された状態です↓

②Search for 〇〇のうしろ「more」で :filterd を選択

次にData sourceで指定した「Search for 〇〇」のうしろ moreをクリックし :filterdを選択します。
今回の例ではUser データを使用しているため、Search for Usersのうしろに:filteredをつけます↓

Search for Usersのうしろ「more」をクリック

③List filterの「Add a new constraint」をクリック

②で:filterdを付けるとList filterの画面が表示されます。ようやくここにconstraint(制約)をかけます。

はじめのSearch for Usersで全てのUserデータをひっぱってきた後にconstraintを行うことになります。

④Clickから「Advanced…」を選択

Advanced…を選択します。

⑤2つの条件をポチポチ選択し or でつなげる

ClickからThis User〜〜で条件を設定し orでもう一つの条件を設定します。

今回の例では以下2つの条件を or で設定しました。

・都道府県が東京都(出身が東京の人)
または(or)
・アクセス件が管理者(管理者の人)

都道府県が東京都 or アクセス権が管理者でfilterをかけると↓
あてはまるデータのみが表示されました。

*どちらかが当てはまれば条件を満たすので、両方(東京と管理者)が当てはまる場合も表示されます

merged withを使う

次にもう一つ、marged withを使う方法を解説します。

merge(マージ)は結合する統合するという意味です。
2つのDo a search forを結合し表示させます。

以下の手順で行います。

①Do a search forの constraintで1つ目の条件を設定
②merged withで統合する
③もう1つのDo a search forの constraintで2つ目の条件を設定

①Do a search forの constraintで「1つ目の条件」を設定

「+ Add a new constraint」をクリックし、1つ目の 都道府県=東京都を設定します。

②merged withで統合します

1つ目のDo a search for のうしろに merged with(統合)を指定し

③もう1つのDo a search forの constraintで「2つ目の条件」を設定

「+ Add a new constraint」をクリックし、2つ目の access-right=管理者を設定します。

2つのDo a search for をマージすると↓
出身地が東京権限が管理者にあてはまるデータが表示されました。

merged withを使う方法でも同じ結果が得られたことがわかります。

まとめ:Workload的には merged with がお勧め

Advanced filterと merged with、ともに同じ結果が表示されました。

ここで実案件に関わっているBubblerさんが気になるのが Workloadの使用量

どちらの方がWorkloadが少なく済むのでしょうか?

結論は merged withの方がWorkloadが若干少なく済みます。

LogsのWorkload Activityの計測結果です↓

Advanced filter → 0.39WU
merged with → 0.32WU

データ量が少ないため若干の違いになりましたが、ちりも積もればで膨大な量を扱う場合はmerged withを使用した方が良さそうです。

Bubbleは2023年の5月〜Workload Unit(ワークロードユニット)の料金体型が追加されました。ページにデータを表示させる際も計測されプランによって上限が決まっています。上限を超えると超過分を購入しなければなりません。

Bubblerは大変ですが…今後はこのWorkloadを意識した開発も求められます。
詳細: Bubble公式「workload計測にかかる内容

or データの取得方法から最後はWorklodの話になりました。Bubblerは本当にさまざまな知識が必要で大変、と思うかもしれません。でも学びに終わりなくすぐに実践に使えるって楽しいですよね? 私は日々学びがあることを楽しんでいます。きっとBubbleが好きな人はそんな方々が多いはず〜

知れば知るほど楽しくなるBubble!
今日も一歩前進、楽しんでいきましょう^^

情報ためになったよ!の方
😃スタバコーヒー1杯おごってもイイよの方はこちらからどうぞ
スタバコーヒー1杯おごる


Bubble構築のご相談や代行も承っております。
お気軽にご連絡ください。

お問い合わせはこちら

ABOUT ME
おばとりっぷ
専業Bubbleエンジニア▷元webデザイナー/ディレクター▷CSSをBubbleに実装するのが得意▷日本国内のトップBubbleエンジニアとしてwebアプリ開発に携わる▷Bubble講師▷フルスクラッチ開発のアプリで起業した経験あり▷スタートアップ・起業家のBubbleアプリ開発の支援を積極的に行う。