2017-10-17 3 views
2

Ci-dessous un des exemples dans la liste Nuage Firestore requêtechaîne Nuage Firestore> = chaîne

citiesRef.where("state", ">=", "CA").where("state", "<=", "IN") 

Qu'est-ce que cela signifie?

Est-ce la façon dont je peux faire une requête pour rechercher des sous-chaînes. Par exemple, J'ai une collection d'utilisateurs et tous mes documents utilisateur ont le prénom et le nom de famille. Maintenant, en tant qu'utilisateur, j'essaie d'en rechercher d'autres en tapant une partie du nom et en cherchant. Je devrais être capable d'écrire une requête pour obtenir tous les utilisateurs dont le nom contient cette chaîne. Comment je fais ça dans Firestore?

+1

Si vous avez deux questions différentes qui ne sont pas liés les uns aux autres, s'il vous plaît leur demander séparément donc ils peuvent être plus facilement répondu séparément. –

+0

Désolé pour mes libellés. Les sujets sont liés. Maintenant, c'est mieux de comprendre. –

+0

Je suis d'accord. Je suis venu ici avec votre deuxième question à la recherche de réponses. Si quelqu'un arrive à répondre aux deux questions, d'accord, mais il vaudrait mieux poser deux questions distinctes. Oui, ils sont liés, mais ils ne sont pas la même question. – Methodician

Répondre

2

[Googler ici] Pour répondre à votre première question, state <= "IN" est une requête pour tous les documents dont la valeur de la propriété state trie inférieure ou égale à la valeur "IN". Donc, si l'état était "IM" ce serait vrai, mais pas si c'était "IO" ou "IP" comme ceux viennent plus tard lexicographiquement.

L'utilisation de "IN" peut avoir été source de confusion ici, il est censé être l'abréviation de l'état de l'Indiana mais c'est aussi un mot réservé dans de nombreux autres systèmes de bases de données. Pour répondre à la deuxième question, Cloud Firestore ne prend pas en charge les opérations "contains", opérations ou autres requêtes de chaîne courantes telles que "beginsWith", "endsWith", "like", etc. La raison en est que tous les Cloud Les requêtes Firestore doivent atteindre un index et pour le moment nous n'indexons pas les champs textuels d'une manière qui rendrait ces requêtes rapides.

Actuellement nous recommandons d'utiliser un moteur de recherche tiers comme Algolia, et nous fournir des indications à le faire ici: https://firebase.google.com/docs/firestore/solutions/search