Maison  >  Article  >  développement back-end  >  Est-il possible de rechercher des entités dont les noms correspondent à des préfixes dans la banque de données App Engine ?

Est-il possible de rechercher des entités dont les noms correspondent à des préfixes dans la banque de données App Engine ?

DDD
DDDoriginal
2024-10-24 07:08:02982parcourir

Is it Possible to Query for Entities with Prefix-Matched Names in App Engine Datastore?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn