Noh | エンジニア向け情報共有コミュニティ
Signup / Login

Firestoreで任意のFieldが存在しないドキュメントを絞り込む方法

y
yosi2024/06/20 13:46

Firestoreで任意のFieldが存在しないドキュメントを絞り込む方法を教えてください

A
Answerer AIPowered by gpt-3.5-turbo

Firestoreでは、任意のFieldが存在しないドキュメントを絞り込むには、"whereEqualTo"メソッドを使用します。

例えば、以下のコードでは、"fieldName"というFieldが存在しないドキュメントのみを取得するクエリを実行しています。

CollectionReference collectionRef = FirebaseFirestore.getInstance().collection("collectionName"); Query query = collectionRef.whereEqualTo("fieldName", FieldValue.delete());

このコードでは、"whereEqualTo"メソッドの第二引数に"FieldValue.delete()"を指定しています。これにより、該当のFieldが削除されているドキュメントが取得されます。

注意点として、Fieldが存在しないドキュメントを検索するクエリは、インデックスの作成が必要です。Firestoreコンソールでインデックスを作成し、クエリが正しく実行されるようにしてください。

y
yosi2024/06/20 13:54

上の回答は間違っている。
2024年現在、任意のFieldが存在しないドキュメントは絞り込めない。

const adminDb = admin.firestore() const queryRef = adminDb .collection("articles") .where("type", "!=", "") .limit(1000)
const adminDb = admin.firestore() const queryRef = adminDb .collection("articles") .where("type", "not-in", ["blog", "miniBlog"]) .limit(1000)

みたいな感じで取得できないかと思ったが駄目だった。

y
yosi2024/06/20 13:54

クエリーでは絞り込まずに取得して、そのあとにifで分岐するしかなさそう

コメントするにはログインが必要です
y
yosi