Query Datastore

Una query recupera le entità da Firestore in modalità Datastore che soddisfano un insieme di condizioni specificato.

La query opera su entità di un determinato tipo; può specificare filtri sui valori, sulle chiavi e sui predecessori delle entità e può restituire zero o più entità come risultati. Una query può anche specificare ordini di ordinamento per ordinare i risultati in sequenza in base ai valori delle relative proprietà. I risultati includono tutte le entità con almeno un valore per ogni proprietà denominata nei filtri e negli ordini, i cui valori delle proprietà soddisfano tutti i criteri di filtro specificati. La query può restituire entità intere, entità proiettate o solo chiavi di entità.

Una query tipica include quanto segue:

  • Un tipo di entità a cui si applica la query
  • Zero o più filtri basati sui valori delle proprietà, sulle chiavi e sui predecessori delle entità
  • Zero o più ordini di ordinamento per ordinare i risultati in sequenza

Una volta eseguita, la query recupera tutte le entità del tipo specificato che soddisfano tutti i filtri specificati, nell'ordine specificato. Le query vengono eseguite come di sola lettura

Nota: per risparmiare memoria e migliorare le prestazioni, quando possibile, una query deve specificare un limite al numero di risultati restituiti.

Ogni query calcola i risultati utilizzando uno o più indici, che contengono chiavi di entità in una sequenza specificata dalle proprietà dell'indice e, facoltativamente, i predecessori dell'entità. Gli indici vengono aggiornati in modo incrementale per riflettere eventuali modifiche apportate dall'applicazione alle entità, in modo che i risultati corretti di tutte le query siano disponibili senza ulteriori calcoli necessari.

Il meccanismo di query basato sull'indice supporta un'ampia gamma di query ed è adatto alla maggior parte delle applicazioni. Tuttavia, non supporta alcuni tipi di query comuni in altre tecnologie di database: in particolare, i join e le query aggregate non sono supportati nel motore di query in modalità Datastore. Consulta Limitazioni sulle query riportata di seguito per le limitazioni relative alle query in modalità Datastore.

Interfaccia Query

Di seguito è riportato un esempio di base di esecuzione di una query su un database in modalità Datastore. Recupera tutte le attività che non sono ancora state eseguite con priorità maggiori o uguali a 4, ordinate in ordine decrescente in base alla priorità:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Filter = Filter.And(Filter.Equal("done", false),
        Filter.GreaterThanOrEqual("priority", 4)),
    Order = { { "priority", PropertyOrder.Types.Direction.Descending } }
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").
	FilterField("Done", "=", false).
	FilterField("Priority", ">=", 4).
	Order("-Priority")

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(
            CompositeFilter.and(
                PropertyFilter.eq("done", false), PropertyFilter.ge("priority", 4)))
        .setOrderBy(OrderBy.desc("priority"))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore
  .createQuery('Task')
  .filter('done', '=', false)
  .filter('priority', '>=', 4)
  .order('priority', {
    descending: true,
  });

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->filter('done', '=', false)
    ->filter('priority', '>=', 4)
    ->order('priority', Query::ORDER_DESCENDING);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.add_filter("done", "=", False)
query.add_filter("priority", ">=", 4)
query.order = ["-priority"]

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .where("done", "=", false)
                 .where("priority", ">=", 4)
                 .order("priority", :desc)

GQL


SELECT * FROM Task
WHERE done = FALSE AND priority >= 4
ORDER BY priority DESC

Per eseguire una query:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task");
DatastoreQueryResults tasks = _db.RunQuery(query);

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

it := client.Run(ctx, query)
for {
	var task Task
	_, err := it.Next(&task)
	if err == iterator.Done {
		break
	}
	if err != nil {
		log.Fatalf("Error fetching next task: %v", err)
	}
	fmt.Printf("Task %q, Priority %d\n", task.Description, task.Priority)
}

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

QueryResults<Entity> tasks = datastore.run(query);

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const [tasks] = await datastore.runQuery(query);
console.log('Tasks:');
tasks.forEach(task => console.log(task));

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$result = $datastore->runQuery($query);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query()
results = list(query.fetch())

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

tasks = datastore.run query

GQL

Non applicabile

Struttura della query

Una query può specificare un tipo di entità, zero o più filtri e zero o più ordini di ordinamento.

Filtri

I filtri di una query impostano vincoli su proprietà, chiavi e predecessori delle entità da recuperare.

Filtri delle proprietà

Un filtro proprietà specifica

  • Il nome di una proprietà
  • Un operatore di confronto
  • Un valore di proprietà

Questo esempio restituisce le entità Tasks contrassegnate come non completate:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Filter = Filter.Equal("done", false)
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").FilterField("Done", "=", false)

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(PropertyFilter.eq("done", false))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore.createQuery('Task').filter('done', '=', false);

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->filter('done', '=', false);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.add_filter("done", "=", False)

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .where("done", "=", false)

GQL


SELECT * FROM Task WHERE done = FALSE

Il valore della proprietà deve essere fornito dall'applicazione; non può fare riferimento o essere calcolato in termini di altre proprietà. Un'entità soddisfa il filtro se ha una proprietà del nome specificato il cui valore è confrontato con il valore specificato nel filtro nel modo descritto dall'operatore di confronto. Se la proprietà del nome specificato ha un valore di matrice, l'entità soddisfa il filtro se uno qualsiasi dei valori viene confrontato con il valore specificato nel filtro nel modo descritto dall'operatore di confronto.

L'operatore di confronto può essere:

Operatore Significato
EQUAL Uguale a
LESS_THAN Minore di
LESS_THAN_OR_EQUAL Minore o uguale a
GREATER_THAN Maggiore di
GREATER_THAN_OR_EQUAL Maggiore o uguale a
NOT_EQUAL Diverso da
IN Membro dell'elenco specificato. Uguale a uno qualsiasi dei valori in un elenco specificato.
NOT_IN Non fa parte dell'elenco specificato. Diverso da qualsiasi valore di un elenco specificato.

Filtri compositi

Un filtro composito è costituito da più filtri delle proprietà. Puoi combinare i filtri con AND e OR. Questo esempio restituisce Task entità contrassegnate come non completate e con priorità 4:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Filter = Filter.And(Filter.Equal("done", false),
        Filter.Equal("priority", 4)),
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").
	FilterField("Done", "=", false).
	FilterField("Priority", "=", 4)

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(
            CompositeFilter.and(
                PropertyFilter.eq("done", false), PropertyFilter.eq("priority", 4)))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore
  .createQuery('Task')
  .filter('done', '=', false)
  .filter('priority', '=', 4);

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->filter('done', '=', false)
    ->filter('priority', '=', 4);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.add_filter("done", "=", False)
query.add_filter("priority", "=", 4)

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .where("done", "=", false)
                 .where("priority", "=", 4)

GQL


SELECT * FROM Task WHERE done = FALSE AND priority = 4

Questo esempio combina i filtri con una OR logica:

C#

Snippet non disponibile.

Go

Snippet non disponibile.

Java

Per scoprire come installare e utilizzare la libreria client per la modalità Datastore, consulta la pagina relativa alle librerie client in modalità Datastore. Per scoprire di più, consulta la documentazione di riferimento per l'API Java della modalità Datastore.

Per eseguire l'autenticazione in modalità Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

import com.google.cloud.datastore.Datastore;
import com.google.cloud.datastore.DatastoreOptions;
import com.google.cloud.datastore.Entity;
import com.google.cloud.datastore.Query;
import com.google.cloud.datastore.QueryResults;
import com.google.cloud.datastore.StructuredQuery.CompositeFilter;
import com.google.cloud.datastore.StructuredQuery.Filter;
import com.google.cloud.datastore.StructuredQuery.PropertyFilter;

public class OrFilterQuery {
  public static void invoke() throws Exception {

    // Instantiates a client
    Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
    String propertyName = "description";

    // Create the two filters
    Filter orFilter =
        CompositeFilter.or(
            PropertyFilter.eq(propertyName, "Feed cats"),
            PropertyFilter.eq(propertyName, "Buy milk"));

    // Build the query
    Query<Entity> query = Query.newEntityQueryBuilder().setKind("Task").setFilter(orFilter).build();

    // Get the results back from Datastore
    QueryResults<Entity> results = datastore.run(query);

    if (!results.hasNext()) {
      throw new Exception("query yielded no results");
    }

    while (results.hasNext()) {
      Entity entity = results.next();
      System.out.printf("Entity: %s%n", entity);
    }
  }
}

Node.js

Per scoprire come installare e utilizzare la libreria client per la modalità Datastore, consulta la pagina relativa alle librerie client in modalità Datastore. Per scoprire di più, consulta la documentazione di riferimento per l'API Node.js della modalità Datastore.

Per eseguire l'autenticazione in modalità Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = "your Google Cloud project id";

// Imports the Cloud Datastore
const {Datastore, PropertyFilter, or} = require('@google-cloud/datastore');

async function queryFilterOr() {
  // Instantiate the Datastore
  const datastore = new Datastore();
  const query = datastore
    .createQuery('Task')
    .filter(
      or([
        new PropertyFilter('description', '=', 'Buy milk'),
        new PropertyFilter('description', '=', 'Feed cats'),
      ])
    );

  const [entities] = await datastore.runQuery(query);
  for (const entity of entities) {
    console.log(`Entity found: ${entity['description']}`);
  }
}

await queryFilterOr();
PHP

Snippet non disponibile.

Python

Per scoprire come installare e utilizzare la libreria client per la modalità Datastore, consulta la pagina relativa alle librerie client in modalità Datastore. Per scoprire di più, consulta la documentazione di riferimento per l'API Python della modalità Datastore.

Per eseguire l'autenticazione in modalità Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore
from google.cloud.datastore import query

def query_filter_or(project_id: str) -> None:
    """Builds a union of two queries (OR) filter.

    Arguments:
        project_id: your Google Cloud Project ID
    """
    client = datastore.Client(project=project_id)

    or_query = client.query(kind="Task")
    or_filter = query.Or(
        [
            query.PropertyFilter("description", "=", "Buy milk"),
            query.PropertyFilter("description", "=", "Feed cats"),
        ]
    )

    or_query.add_filter(filter=or_filter)

    results = or_query.fetch()
    for result in results:
        print(result["description"])
Ruby

Snippet non disponibile.

GQL

Snippet non disponibile.

Firestore in modalità Datastore supporta la combinazione di filtri con operatori AND e OR. Questo esempio restituisce Task entità aggiunte a Speciali o contrassegnate come non completate e con priorità 4:
C#

Snippet non disponibile.

Go

Snippet non disponibile.

Java
Query query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(CompositeFilter.or(
            PropertyFilter.eq("starred", true)),
            CompositeFilter.and(
                PropertyFilter.eq("done", false),
                PropertyFilter.eq("priority", 4)))
        .build();

Node.js

Snippet non disponibile.

PHP

Snippet non disponibile.

Python
and_or_query = client.query(kind="Task")

query_filter = query.Or(
    [
        query.PropertyFilter("starred", "=", True),
        query.And([query.PropertyFilter("done", "=", False),
                    query.PropertyFilter("priority", "=", 4,),
        ]
        )
    ]
)

and_or_query.add_filter(filter=query_filter)

results = and_or_query.fetch()
for result in results:
    print(result["description"])
Ruby

Snippet non disponibile.

GQL

Snippet non disponibile.

Filtri principali

Per filtrare in base al valore della chiave di un'entità, utilizza la proprietà speciale __key__:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Filter = Filter.GreaterThan("__key__", _keyFactory.CreateKey("aTask"))
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

key := datastore.NameKey("Task", "someTask", nil)
query := datastore.NewQuery("Task").FilterField("__key__", ">", key)

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(PropertyFilter.gt("__key__", keyFactory.newKey("someTask")))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore
  .createQuery('Task')
  .filter('__key__', '>', datastore.key(['Task', 'someTask']));

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->filter('__key__', '>', $datastore->key('Task', 'someTask'));

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
first_key = client.key("Task", "first_task")
# key_filter(key, op) translates to add_filter('__key__', op, key).
query.key_filter(first_key, ">")

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .where("__key__", ">", datastore.key("Task", "someTask"))

GQL


SELECT * FROM Task WHERE __key__ > KEY(Task, 'someTask')

Quando si confrontano le disuguaglianze, le chiavi vengono ordinate in base ai seguenti criteri:

  1. Percorso predecessore
  2. Tipo di entità
  3. Identificatore (nome della chiave o ID numerico)

Gli elementi del percorso predecessore vengono confrontati in modo simile: per tipo (stringa), quindi per nome chiave o ID numerico. I tipi e i nomi delle chiavi sono stringhe e sono ordinati per valore in byte; gli ID numerici sono numeri interi e sono numerici. Se le entità con lo stesso tipo e padre utilizzano una combinazione di stringhe di nomi di chiavi e ID numerici, quelle con ID numerici precedono quelle con nomi di chiave.

Le query sulle chiavi utilizzano gli indici come accade per le proprietà e negli stessi casi richiedono indici personalizzati, con un paio di eccezioni: i filtri di disuguaglianza o un ordinamento crescente nella chiave non richiedono un indice personalizzato, mentre un ordinamento decrescente nella chiave lo fa. Come per tutte le query, il server di sviluppo crea voci appropriate nel file di configurazione dell'indice quando nell'ambiente di sviluppo viene utilizzata una query che richiede un indice personalizzato.

Ordinare gli ordini

Un ordine di ordinamento della query specifica

  • Il nome di una proprietà.
  • Una direzione di ordinamento (in ordine crescente o decrescente). Per impostazione predefinita, l'ordinamento è crescente.

Questo esempio ordina le entità dell'attività in base all'ora di creazione in ordine crescente:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Order = { { "created", PropertyOrder.Types.Direction.Ascending } }
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").Order("created")

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder().setKind("Task").setOrderBy(OrderBy.asc("created")).build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore.createQuery('Task').order('created');

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->order('created');

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.order = ["created"]

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .order("created", :asc)

GQL


SELECT * FROM Task ORDER BY created ASC

Questo esempio ordina le entità dell'attività in base all'ora di creazione, in ordine decrescente:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Order = { { "created", PropertyOrder.Types.Direction.Descending } }
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").Order("-created")

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder().setKind("Task").setOrderBy(OrderBy.desc("created")).build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore.createQuery('Task').order('created', {
  descending: true,
});

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->order('created', Query::ORDER_DESCENDING);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.order = ["-created"]

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .order("created", :desc)

GQL


SELECT * FROM Task ORDER BY created DESC

Se una query include più ordinamenti, vengono applicati nella sequenza specificata. Il seguente esempio ordina prima per priorità decrescente e poi per data di creazione crescente:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Order = { { "priority", PropertyOrder.Types.Direction.Descending },
        { "created", PropertyOrder.Types.Direction.Ascending } }
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").Order("-priority").Order("created")

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setOrderBy(OrderBy.desc("priority"), OrderBy.asc("created"))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore
  .createQuery('Task')
  .order('priority', {
    descending: true,
  })
  .order('created');

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->kind('Task')
    ->order('priority', Query::ORDER_DESCENDING)
    ->order('created');

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query(kind="Task")
query.order = ["-priority", "created"]

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .order("priority", :desc)
                 .order("created", :asc)

GQL


SELECT * FROM Task ORDER BY priority DESC, created ASC

Se non viene specificato alcun ordinamento, i risultati vengono restituiti nell'ordine in cui vengono recuperati dalla modalità Datastore.

Nota: a causa del modo in cui la modalità Datastore esegue le query, se una query specifica filtri di disuguaglianza su una proprietà e ordina gli ordini in altre proprietà, la proprietà utilizzata nei filtri di disuguaglianza deve essere ordinata prima delle altre proprietà.

Tipi di query speciali

Alcuni tipi specifici di query meritano una menzione speciale:

!= Not equal

Utilizza l'operatore non uguale (!=) per restituire entità in cui la proprietà specificata esiste e non corrisponde al valore di confronto.

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

package datastore_snippets

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/datastore"
	"google.golang.org/api/iterator"
)

func queryNotEquals(w io.Writer, projectId string) error {
	ctx := context.Background()
	client, err := datastore.NewClient(ctx, projectId)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	q := datastore.NewQuery("TaskList")
	q.FilterField("Task", "!=", []string{"notASimpleTask"})

	it := client.Run(ctx, q)
	for {
		var dst struct {
			Task string
		}
		key, err := it.Next(&dst)
		if err == iterator.Done {
			break
		}

		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Key retrieved: %v\n", key)
	}

	return nil
}

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(PropertyFilter.neq("category", "Work"))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = client.query(kind="Task")
query.add_filter("category", "!=", "work")

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

GQL


SELECT * FROM Task WHERE category != 'work'

Questa query restituisce ogni entità Task in cui esiste la proprietà category ed è impostata su un valore diverso da Work.

Questa query non restituisce entità in cui la proprietà category non esiste. Le query non uguali (!=) e NOT_IN escludono le entità in cui la proprietà specificata non esiste o in cui è esclusa dall'indicizzazione. Una proprietà esiste quando viene impostata su qualsiasi valore, inclusa una stringa vuota o null.

Limitazioni

Nota le seguenti limitazioni per != query:

  • Solo le entità in cui esiste la proprietà specificata possono corrispondere alla query.
  • Non puoi combinare NOT_IN e != in una query composta.
  • In una query composta, i filtri di disuguaglianza (<, <=, >, >=, !=, NOT_IN) devono applicare tutti i filtri alla stessa proprietà.

IN

Utilizza l'operatore IN per combinare fino a 30 clausole di uguaglianza (==) nella stessa proprietà con un OR logico. Una query IN restituisce entità in cui la proprietà specificata corrisponde a uno qualsiasi dei valori di confronto.

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

package datastore_snippets

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/datastore"
	"google.golang.org/api/iterator"
)

func queryIn(w io.Writer, projectId string) error {
	ctx := context.Background()
	client, err := datastore.NewClient(ctx, projectId)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	q := datastore.NewQuery("TaskList")
	q.FilterField("Task", "in", []string{"simpleTask", "easyTask"})

	it := client.Run(ctx, q)
	for {
		var dst struct {
			Task string
		}
		key, err := it.Next(&dst)
		if err == iterator.Done {
			break
		}

		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Key retrieved: %v\n", key)
	}

	return nil
}

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(PropertyFilter.in("tag", ListValue.of("learn", "study")))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = client.query(kind="Task")
query.add_filter("tag", "IN", ["learn", "study"])

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

GQL


SELECT * FROM Task WHERE tag IN ARRAY('learn', 'study')

Questa query restituisce ogni entità Task in cui la proprietà tag è impostata su learn o study. Sono incluse le entità Task in cui la proprietà tag include uno di questi valori, ma non l'altro.

NOT_IN

Utilizza l'operatore NOT_IN per combinare fino a 10 clausole diverse da (!=) sulla stessa proprietà con un valore logico AND. Una query NOT_IN restituisce entità in cui esiste la proprietà specificata e non corrisponde a nessuno dei valori di confronto.

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

package datastore_snippets

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/datastore"
	"google.golang.org/api/iterator"
)

func queryNotIn(w io.Writer, projectId string) error {
	ctx := context.Background()
	client, err := datastore.NewClient(ctx, projectId)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	q := datastore.NewQuery("TaskList")
	q.FilterField("Task", "not-in", []string{"notASimpleTask", "notAnEasyTask"})

	it := client.Run(ctx, q)
	for {
		var dst struct {
			Task string
		}
		key, err := it.Next(&dst)
		if err == iterator.Done {
			break
		}

		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Key retrieved: %v\n", key)
	}

	return nil
}

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(PropertyFilter.not_in("category", ListValue.of("Work", "Chores", "School")))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = client.query(kind="Task")
query.add_filter("category", "NOT_IN", ["work", "chores", "school"])

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Non applicabile

GQL


SELECT * FROM Task WHERE category NOT IN ARRAY('work', 'chores', 'school')

Questa query non restituisce entità in cui l'entità category non esiste. Le query non uguali (!=) e NOT_IN escludono le entità in cui la proprietà specificata non esiste. Una proprietà esiste quando viene impostata su qualsiasi valore, inclusa una stringa vuota o null.

Limitazioni

Nota le seguenti limitazioni per NOT_IN query:

  • Solo le entità in cui esiste la proprietà specificata possono corrispondere alla query.
  • Non puoi combinare NOT_IN e != in una query composta.
  • In una query composta, i filtri di uguaglianza (<, <=, >, >=, !=, NOT_IN) devono tutti filtrare sulla stessa proprietà.

Query predecessore

Una query da predecessore limita i risultati all'entità specificata e ai suoi discendenti. Questo esempio restituisce tutte le entità Task con l'entità TaskList specificata come predecessore:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Filter = Filter.HasAncestor(_db.CreateKeyFactory("TaskList")
        .CreateKey(keyName))
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

ancestor := datastore.NameKey("TaskList", "default", nil)
query := datastore.NewQuery("Task").Ancestor(ancestor)

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder()
        .setKind("Task")
        .setFilter(
            PropertyFilter.hasAncestor(
                datastore.newKeyFactory().setKind("TaskList").newKey("default")))
        .build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const ancestorKey = datastore.key(['TaskList', 'default']);

const query = datastore.createQuery('Task').hasAncestor(ancestorKey);

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$ancestorKey = $datastore->key('TaskList', 'default');
$query = $datastore->query()
    ->kind('Task')
    ->hasAncestor($ancestorKey);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

# Query filters are omitted in this example as any ancestor queries with a
# non-key filter require a composite index.
ancestor = client.key("TaskList", "default")
query = client.query(kind="Task", ancestor=ancestor)

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

# task_list_name = "default"
ancestor_key = datastore.key "TaskList", task_list_name

query = datastore.query("Task")
                 .ancestor(ancestor_key)

GQL


SELECT * FROM Task WHERE __key__ HAS ANCESTOR KEY(TaskList, 'default')

Limitazioni per le query predecessore

Nota le seguenti limitazioni per Ancestor query:

  • Tutte le disgiunzioni valutate devono avere lo stesso filtro predecessore.

Query senza tipo

Una query senza tipo e senza predecessore recupera tutte le entità di un'applicazione dalla modalità Datastore. Queste query senza tipo non possono includere filtri o ordinamenti in base ai valori delle proprietà. Tuttavia, può filtrare le chiavi di entità e utilizzare i filtri predecessore. È possibile utilizzare i filtri della chiave specificando __key__ come nome della proprietà:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query()
{
    Filter = Filter.GreaterThan("__key__",
        _keyFactory.CreateKey("aTask"))
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("").FilterField("__key__", ">", lastSeenKey)

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Entity> query =
    Query.newEntityQueryBuilder().setFilter(PropertyFilter.gt("__key__", lastSeenKey)).build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore
  .createQuery()
  .filter('__key__', '>', lastSeenKey)
  .limit(1);

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->filter('__key__', '>', $lastSeenKey);

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

last_seen_key = client.key("Task", "a")
query = client.query()
query.key_filter(last_seen_key, ">")

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = Google::Cloud::Datastore::Query.new
query.where "__key__", ">", last_seen_key

GQL


SELECT * WHERE __key__ > KEY(Task, 'someTask')

Query di proiezione

La maggior parte delle query restituisce entità intere come risultati, ma spesso un'applicazione è effettivamente interessata solo ad alcune delle proprietà dell'entità. Le query di proiezione ti consentono di eseguire query solo sulle proprietà specifiche di un'entità di cui hai effettivamente bisogno, con una latenza e un costo inferiori rispetto al recupero dell'intera entità.

Le query di proiezione richiedono l'indicizzazione delle proprietà specificate.

Query contenenti solo le chiavi

Una query solo su chiavi (un tipo di query di proiezione) restituisce solo le chiavi delle entità dei risultati anziché le entità stesse, con una latenza e un costo inferiori rispetto al recupero di intere entità.

Spesso è più economico eseguire prima una query basata solo su chiavi e poi recuperare un sottoinsieme di entità dai risultati, anziché eseguire una query generale che potrebbe recuperare più entità di quelle realmente necessarie.

Ecco come creare una query basata solo sulle chiavi:

C#

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreC#.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query query = new Query("Task")
{
    Projection = { "__key__" }
};

Go

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreGo.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query := datastore.NewQuery("Task").KeysOnly()

Java

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreJava.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

Query<Key> query = Query.newKeyQueryBuilder().setKind("Task").build();

Node.js

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreNode.js.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

const query = datastore.createQuery().select('__key__').limit(1);

PHP

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePHP.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

$query = $datastore->query()
    ->keysOnly();

Python

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastorePython.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import datastore

# For help authenticating your client, visit
# https://cloud.google.com/docs/authentication/getting-started
client = datastore.Client()

query = client.query()
query.keys_only()

Ruby

Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta la pagina relativa alle librerie client di Cloud Datastore. Per ulteriori informazioni, consulta la documentazione di riferimento per l'API Cloud DatastoreRuby.

Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

query = datastore.query("Task")
                 .select("__key__")

GQL


SELECT __key__ FROM Task

Una query di sola chiave è una piccola operazione e viene conteggiata come una singola entità letta per la query.

Proiezioni

Le query di proiezione sono simili alle query SQL del formato:

SELECT priority, percent_complete FROM Task

Puoi utilizzare tutte le funzionalità di filtro e ordinamento disponibili per le query entità standard, ma tieni presente queste limitazioni.

La query SQL di esempio restituisce risultati ridotti con solo le proprietà specificate, priority e percent_complete, completate con i valori e tutte le altre proprietà non vengono completate. Ecco come strutturarla come query di proiezione:

C#

Per scoprire come installare e utilizzare la libreria client per Clo