Professional Cloud Database Engineer(Google Cloud) 無料問題 3 / 10 ・ 分野1: Design innovative, scalable, and highly available cloud database solutions
Firestoreでrankを持つ文書とrankフィールドが欠落した文書が混在する。orderBy(rank)を指定したクエリの結果はどうなるか。
- rankフィールドが欠落した文書はrank=0として並ぶ
- rankフィールドが欠落した文書は、orderByの結果に含まれない
- rankフィールドが欠落した文書はドキュメントID順で先頭に並ぶ
- rankフィールドが欠落した文書は、null値の文書と同じ扱いで並ぶ
正解と解説を見る
正解: B
正解の理由
並べ替えと件数の制限のページの注記には「orderBy() 句は、指定したフィールドがあることでも絞り込む。結果には、そのフィールドを持たない文書は含まれない」とあります。null が入っている文書はフィールドを持っているので並びますが、rank そのものが無い文書は結果から消えます。全件を並べたいなら、並べ替え用のフィールドをすべての文書に持たせます。
違う選択肢
「rankフィールドが欠落した文書は、null値の文書と同じ扱いで並ぶ」…欠落と、フィールドが存在して値がnullである状態は同じではありません。
「rankフィールドが欠落した文書はrank=0として並ぶ」…欠落フィールドに数値0を補完する動作ではありません。0を明示した文書とは区別されます。
「rankフィールドが欠落した文書はドキュメントID順で先頭に並ぶ」…欠落文書を先頭へ集める方式ではなく、該当文書はクエリ対象から外れます。
押さえどころ
全件を並べたい場合は、必要な文書に一貫したソート用フィールドを用意します。データ修復前後の件数も比較します。
Professional Cloud Database Engineer(Google Cloud)の演習アプリ(無料10問・全問は解錠で)へ