Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Querying Firestore documents by nested key-value in an array field using Python

Ouverte
#781 1 commentaire 5 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
databases

Piste de recherche

L’issue ne mentionne aucun fichier ni test du dépôt. Commencez par examiner le comportement des requêtes Firestore pour array-contains et les champs imbriqués, ainsi que l’API FieldFilter de Python ; le travail est terminé lorsqu’il est déterminé si ce prédicat est pris en charge et que l’approche de requête appropriée ou la limitation est documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

api: firestore type: feature request

Is your feature request related to a problem? Please describe.
I'm working with Firestore in Python and have a data query challenge I'm hoping to get some advice on.

My documents in Firestore are structured as follows:

{
  "key1": "value1",
  "key2": {
    "subKey1": [
      {
        "arrayKey1": "arrayValue1",
        "arrayKey2": "arrayValue2"
      },
      {
        "arrayKey3": "arrayValue3",
        "arrayKey4": "arrayValue4"
      }
    ],
    "subKey2": "subValue2"
  }
}

My goal is to query documents where the value of arrayKey1 within the subKey1 array matches a specific value (for example, target_arrayValue1), regardless of the arrayKey2 in the same dictionary.

Here's an example of what my query currently looks like:

docs = query.where(
    filter=FieldFilter(
        "key2.subKey1",
        "array_contains",
        {
            "arrayKey1": "target_arrayValue1",
            "arrayKey2": "arrayValue2"
        }
    )
).stream()

This approach, however, requires a full match of the dictionary, which is not ideal.

Describe the solution you'd like
My “ideal” code would do something like this:

docs = query.where(
    filter=FieldFilter(
        "key2.subKey1.0.arrayKey1", 
        "==",
        "target_arrayValue1"
    )
).stream()

Is there an appropriate way to structure my query to achieve this? Any insights or examples would be greatly appreciated! Thanks in advance.

Langage dominant
Python
Étoiles
1.2k
Forks
359
Merge moyen
3 j 9 h
PR mergées (30 j)
3

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de firebase/firebase-admin-python

Toutes les issues de firebase/firebase-admin-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.