Om 'n navraagfilter by te voeg en die resultate in Google Cloud Platform se Datastore te beperk, kan jy die Query-klas gebruik wat deur die Cloud Datastore-kliëntbiblioteek verskaf word. Die Query-klas laat jou toe om filters te definieer op grond van spesifieke eienskappe of voorwaardes, wat jou in staat stel om slegs die entiteite te herwin wat aan jou gespesifiseerde kriteria voldoen.
Om te begin, moet jy 'n nuwe Navraag-objek skep en die soort entiteit spesifiseer wat jy wil navraag doen. Die soort verteenwoordig die entiteittipe of model in jou Datastore. Byvoorbeeld, as jy 'n entiteitsoort genaamd "Persoon" het, sal jy begin deur 'n Navraag-objek vir daardie soort te skep:
python from google.cloud import datastore client = datastore.Client() query = client.query(kind='Person')
Sodra jy die Query-objek het, kan jy filters byvoeg om die resultate te beperk. Daar is verskeie tipes filters wat jy kan toepas:
1. Eiendomsfilter: Hierdie filter laat jou toe om entiteite te pas op grond van die waarde van 'n spesifieke eiendom. Byvoorbeeld, om alle persone met die ouderdom van 25 te herwin, kan jy 'n eiendomsfilter soos volg byvoeg:
python query.add_filter('age', '=', 25)
In hierdie geval word die 'ouderdom'-eienskap vergelyk met die waarde 25 deur die gelykheidsoperateur '=' te gebruik. Jy kan ook ander vergelykingsoperateurs soos '<', '>', '<=', '>=' en '!=' gebruik.
2. Saamgestelde filter: As jy veelvuldige filters moet kombineer, kan jy 'n saamgestelde filter gebruik. Hierdie filter laat jou toe om logiese EN of OF toestande tussen verskillende filters te spesifiseer. Byvoorbeeld, om persone met ouderdom 25 en naam wat met 'John' begin op te spoor, kan jy 'n saamgestelde filter soos volg skep:
python from google.cloud.datastore.query import CompositeFilter filter1 = ('age', '=', 25) filter2 = ('name', '>=', 'John') composite_filter = CompositeFilter(CompositeFilter.AND, [filter1, filter2]) query.add_filter(composite_filter)
In hierdie voorbeeld skep ons twee eiendomfilters vir ouderdom en naam, en kombineer hulle dan met die CompositeFilter.AND-operateur.
3. Voorouerfilter: As jou entiteite in 'n hiërargiese struktuur georganiseer is deur voorouers te gebruik, kan jy 'n voorouerfilter gebruik om entiteite wat 'n spesifieke voorouer het, te herwin. 'n Voorouerfilter is nuttig wanneer jy 'n subset van entiteite onder 'n spesifieke voorouer wil herwin. Byvoorbeeld, om alle persone onder 'n spesifieke ouer-entiteit te herwin, kan jy 'n voorouerfilter soos volg byvoeg:
python ancestor_key = client.key('Parent', 'parent_id') query.ancestor = ancestor_key
In hierdie geval is 'Ouer' die soort van die voorouer-entiteit, en 'ouer_id' is die identifiseerder van die ouer-entiteit.
Nadat u die verlangde filters bygevoeg het, kan u die navraag uitvoer om die gefiltreerde resultate op te haal:
python results = list(query.fetch()) for entity in results: # Process the retrieved entity print(entity)
Deur die resultate te herhaal, kan jy elke entiteit verwerk soos nodig.
Om 'n navraagfilter by te voeg en die resultate in Google Wolk Platform se Datastore te beperk, moet jy 'n Navraag-objek vir die verlangde entiteitsoort skep en die toepaslike filters byvoeg deur metodes soos `add_filter()` of `ancestor` te gebruik. Die Query-klas bied verskeie filteropsies, insluitend eiendomsfilters, saamgestelde filters en voorouerfilters, wat jou toelaat om die entiteite te herwin wat aan jou gespesifiseerde kriteria voldoen.
Ander onlangse vrae en antwoorde t.o.v Datastoor:
- Hoe voer jy 'n navraag in Datastore uit deur die GQL-taal te gebruik?
- Wat is eiendomme in Datastore en hoe voeg jy dit by 'n entiteit?
- Hoe skep jy 'n nuwe entiteit in Datastore met behulp van die Google Cloud Platform Console?
- Wat is die doel van Datastore in Google Cloud Platform?