Introduction :
Recherche d'entités là où commence le champ de nom avec une chaîne particulière est une exigence courante dans les requêtes de données. Google App Engine Datastore fournit un moyen d'y parvenir, mais cela n'est peut-être pas immédiatement évident. Cet article montre comment créer de telles requêtes et explore des solutions alternatives dans d'autres services App Engine.
Énoncé du problème :
"J'ai essayé de récupérer des lieux dont le nom commence par avec une chaîne spécifique à l'aide d'une requête de filtre, mais cela ne fonctionne pas. Cette fonctionnalité est-elle prise en charge dans Datastore, et si ce n'est pas le cas, quelles sont les solutions possibles ?"
Construction de requête :
L'intuition derrière une requête de préfixe est de filtrer les entités dont le nom est supérieur à la chaîne de préfixe. Cependant, l'utilisation d'un seul filtre d'inégalité (par exemple, Nom > "a") échouera car elle exclura toutes les entités dont le nom commence par le préfixe.
La solution réside dans la combinaison de deux filtres d'inégalité. Nous devons préciser que le nom est à la fois supérieur ou égal à la chaîne de préfixe et inférieur à la chaîne lexicographique suivante.
Exemple de requête :
Récupérons les lieux qui commencez par "li":
q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")
Explication :
Solutions alternatives :
Si cette approche ne répond pas à des exigences spécifiques, App Engine propose d'autres services pour les requêtes avancées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!