ひと昔前まではDBを構築するのはお金もかかるしなかなか大変だったのですが、最近はGoogleのFirebaseを使えば無料で簡単にDBを構築できるので世の中の流れについていくのも大変です。
とはいえ、実際の業務で使用する場合もあり、覚えておくに越したことはありません。
そんなわけで、現在では業務で普通に使ってるし、フロントエンドだけでなくFunctionsを使用したバッチ処理も組んだりしている状況だったりします。
Firestoreで生成したコレクションに対してレコードを追加する際、全レコード必ず同じフィールドが存在しなくても特にエラーになったりはしません。
(仕様上まずいパターンは勿論存在しますが。)
前段が長くなりましたが。
先程記載した通り、全レコードのフィールドが統一されていなくても動く分、逆にとあるフィールドが無いレコードを見つけるのはどうしたら良いかということを調べてみました。
演算子で良いものがあればいいのですが無く、検索しても上記対応方法がなかなかヒットしませんでしたが、以下のやり方で対応できました。
const ref = await db
.collection('hoge')
// .where('feild', '==', db.FieldValue.delete())
.get()
const dataList = ref.docs.map((doc) => doc.data())
dataList.forEach((data) => {
if (!data.field) {
logger.log(data.id)
}
})
本来であれば、コメントアウトしているwhere句で対応したかったのですが出来ずにこの書き方になりました。