Go 1.11 ha raggiunto la fine del supporto
e verrà
ritirato
il 31 gennaio 2026. Dopo il ritiro, non potrai eseguire il deployment delle applicazioni Go 1.11, anche se la tua organizzazione ha utilizzato in precedenza un criterio dell'organizzazione per riattivare i deployment dei runtime legacy. Le tue applicazioni Go
1.11 continueranno a essere eseguite e a ricevere traffico dopo la
data di ritiro. Ti
consigliamo di
eseguire la migrazione all'ultima versione supportata di Go.
Recupero dei risultati delle query
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Dopo aver creato una query, puoi specificare una serie di opzioni di recupero per
controllare ulteriormente i risultati restituiti.
Per ulteriori informazioni sulla strutturazione delle query per la tua app, consulta la sezione Query Datastore.
Iterazione tra i risultati delle query
Quando esegui l'iterazione dei risultati di una query utilizzando il metodo Run
di un valore Query
, Cloud Datastore recupera i risultati in batch. Per impostazione predefinita, ogni batch contiene 20 risultati. Puoi continuare a scorrere i risultati della query finché non vengono restituiti tutti o la richiesta non scade.
Per scorrere ogni entità che corrisponde alla query, utilizza il metodo
Run
per ottenere un
Iterator
, con cui puoi scorrere ogni entità utilizzando il metodo
Next
di
Iterator
.
Per recuperare contemporaneamente tutte le entità corrispondenti alla query, utilizza il metodo GetAll
.
Recupero delle proprietà selezionate da un'entità
Per recuperare solo le proprietà selezionate di un'entità anziché l'intera entità, utilizza una query di proiezione. Questo tipo di query viene eseguito più rapidamente e costa meno di una che restituisce entità complete.
Allo stesso modo, una query basata solo su chiavi consente di risparmiare tempo e risorse restituendo solo le chiavi delle entità corrispondenti, anziché le entità complete. Per creare questo tipo di query, chiama il metodo KeysOnly
durante la creazione di Query
:
Impostare un limite per la query
Puoi specificare un limite per la query per controllare il numero massimo di risultati restituiti in un batch. L'esempio seguente recupera le cinque persone più alte da Cloud Datastore:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-04 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eThis API is designed for first-generation runtimes, with a migration guide available for upgrading to App Engine Go 1.12+ second-generation runtimes.\u003c/p\u003e\n"],["\u003cp\u003eQuery results can be iterated through using the \u003ccode\u003eRun\u003c/code\u003e method, which retrieves results in batches, or retrieved all at once with the \u003ccode\u003eGetAll\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eProjection queries allow for the retrieval of selected properties from an entity, which is faster and more cost-effective than retrieving full entities.\u003c/p\u003e\n"],["\u003cp\u003eKeys-only queries, created by calling the \u003ccode\u003eKeysOnly\u003c/code\u003e method, save resources by only returning the keys of matching entities.\u003c/p\u003e\n"],["\u003cp\u003eYou can limit the number of results returned by a query in a single batch by specifying a limit using the \u003ccode\u003eLimit\u003c/code\u003e method.\u003c/p\u003e\n"]]],[],null,["# Retrieving query results\n\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| go\n| /services/access). If you are updating to the App Engine Go 1.12+ runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/go-differences) to learn about your migration options for legacy bundled services.\n\nAfter constructing a query, you can specify a number of retrieval options to\nfurther control the results it returns.\nSee [datastore queries](/appengine/docs/legacy/standard/go111/datastore/queries) for more information on structuring queries for your app.\n\nIterating through query results\n-------------------------------\n\nWhen iterating through the results of a query using the [`Run`](/appengine/docs/legacy/standard/go111/datastore/reference#Query.Run) method of a [`Query`](/appengine/docs/legacy/standard/go111/datastore/reference#Query) value, Cloud Datastore retrieves the results in batches. By default each batch contains 20 results. You can continue iterating through query results until all are returned or the request times out.\nTo iterate over each entity that matches your query, use the [`Run`](/appengine/docs/legacy/standard/go111/datastore/reference#Query.Run) method to obtain an [`Iterator`](/appengine/docs/legacy/standard/go111/datastore/reference#Iterator), with which you can step through each entity using the `Iterator`'s [`Next`](/appengine/docs/legacy/standard/go111/datastore/reference#Iterator.Next) method.\n\n\u003cbr /\u003e\n\n q := datastore.NewQuery(\"Person\")\n t := q.Run(ctx)\n for {\n \tvar p Person\n \tk, err := t.Next(&p)\n \tif err == datastore.Done {\n \t\tbreak // No further entities match the query.\n \t}\n \tif err != nil {\n \t\tlog.Errorf(ctx, \"fetching next Person: %v\", err)\n \t\tbreak\n \t}\n \t// Do something with Person p and Key k\n \tdoSomething(k, p)\n }\n\nTo retrieve all entities matching your query at once, use the [`GetAll`](/appengine/docs/legacy/standard/go111/datastore/reference#Query.GetAll) method. \n\n q := datastore.NewQuery(\"Person\")\n var people []Person\n keys, err := q.GetAll(ctx, &people)\n if err != nil {\n \tlog.Errorf(ctx, \"fetching people: %v\", err)\n \treturn\n }\n for i, p := range people {\n \tk := keys[i]\n \t// Do something with Person p and Key k\n \tdoSomething(k, p)\n }\n\nRetrieving selected properties from an entity\n---------------------------------------------\n\nTo retrieve only selected properties of an entity rather than the entire entity, use a [*projection query*](/appengine/docs/legacy/standard/go111/datastore/projectionqueries). This type of query runs faster and costs less than one that returns complete entities.\n\nSimilarly, a [*keys-only query*](/appengine/docs/legacy/standard/go111/datastore/queries#keys-only_queries) saves time and resources by returning just the keys to the entities it matches, rather than the full entities themselves. To create this type of query, call the `KeysOnly` method when constructing the `Query`.: \n\n q := datastore.NewQuery(\"Person\").KeysOnly()\n\nSetting a limit for your query\n------------------------------\n\nYou can specify a *limit* for your query to control the maximum number of results returned in one batch. The following example retrieves the five tallest people from Cloud Datastore: \n\n q := datastore.NewQuery(\"Person\").Order(\"-Height\").Limit(5)\n var people []Person\n _, err := q.GetAll(ctx, &people)\n // check err\n\n for _, p := range people {\n \tlog.Infof(ctx, \"%s %s, %d inches tall\", p.FirstName, p.LastName, p.Height)\n }\n\nWhat's next?\n------------\n\n- Learn the [common restrictions](/appengine/docs/legacy/standard/go111/datastore/query-restrictions) for queries on Cloud Datastore.\n- Learn about [query cursors](/appengine/docs/legacy/standard/go111/datastore/query-cursors), which allow an application to retrieve a query's results in convenient batches.\n- [Understand data consistency](/appengine/docs/legacy/standard/go111/datastore/data-consistency) and how data consistency works with different types of queries on Cloud Datastore.\n- Learn the [basic syntax and structure of queries](/appengine/docs/legacy/standard/go111/datastore/queries) for Cloud Datastore."]]