Firestore のクエリで「存在しないこと」をチェックしたい場合、事前に null を入れておく
Firestore でこんなモデルを作ったとする。
admin.firestore().collection('user').add({ startDate: new Date(), name: 'hoge' })
このモデルに対し、「 endDate
に値が入っていないもの」をクエリで取得したいとする。
パッと思いつくクエリはこう。
admin.firestore().collection('user') .where('endDate', '==', undefined) .get()
しかし、 undefined はクエリとして指定することができない。困った。
事前に null を入れておく
admin.firestore().collection('user').add({ startDate: new Date(), name: 'hoge', endDate: null })
admin.firestore().collection('user') .where('endDate', '==', null) .get()
is null を確認したい場合は、事前に null を入れてデータを作っておく。
後になって is null でクエリを書こうとしてもダメなので、事前に null を入れましょう。
false ならいけそうな気がしたがダメだった
データがあれば true, なければ false というような、js のようにふわっとかけないかなと思ったけどダメだった。
true / false はちゃんと真偽値しか検索に引っかからないようだ。