Rechercher des entités avec des noms préfixés dans la banque de données Google App Engine
Question :
Est-ce Est-il possible de récupérer des entités de Datastore où un champ spécifique commence par une chaîne donnée ? Malgré la tentative de requête suivante, je ne parviens pas à obtenir les résultats souhaités :
q = datastore.NewQuery("Places").Filter("Name >", "a")
Réponse :
L'interrogation d'entités basée sur un préfixe de champ est en effet prise en charge dans Datastore , mais cela nécessite la conjonction de deux filtres d'inégalité.
Par exemple, pour récupérer des lieux dont le nom commence par "li", la requête doit spécifier que le champ Nom est supérieur (ou égal à) "li" et moins que "lj". En effet, "lj" est le préfixe lexicographique suivant.
En GQL, cette requête apparaîtrait comme :
SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'
En code Go, la requête prend la forme :
q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")
Cette requête renverra des lieux portant des noms tels que :
liam lisotto lizst
Cependant, elle exclura les noms ressemblant à :
abc ljoi lj qwerty
Notez que les lettres majuscules et minuscules ont des caractères lexicographiques distincts. ordres. Ainsi, "List" précède "li", tandis que "list" suit "li".
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!