Firestore in modalità Datastore fornisce l'accesso ai metadati che includono informazioni su gruppi di entità, spazi dei nomi, tipi di entità, proprietà e rappresentazioni delle proprietà per ogni proprietà. Puoi utilizzare i metadati, ad esempio, per creare un visualizzatore di datastore personalizzato per la tua applicazione o per le funzioni amministrative di backend.
La dashboard Datastore nella console Google Cloud fornisce anche alcuni metadati sulla tua applicazione, ma i dati visualizzati differiscono per alcuni aspetti importanti da quelli restituiti da queste funzioni.
- Aggiornamento. La lettura dei metadati tramite l'API recupera i dati attuali, mentre i dati nella dashboard vengono aggiornati solo una volta al giorno.
- Sommario. Alcuni metadati nella dashboard non sono disponibili tramite le API; è vero anche il contrario.
- Velocità. Le operazioni di recupero e le query sui metadati vengono fatturate allo stesso modo delle operazioni di recupero e delle query del datastore. Query dei metadati che recuperano informazioni su spazi dei nomi, tipi e proprietà sono generalmente lente da eseguire. Come regola generale, una query sui metadati che restituisce N entità richiede circa lo stesso tempo di N query ordinarie, ognuna delle quali restituisce una singola entità. Inoltre, le query di rappresentazione delle proprietà (query sulle proprietà non basate solo su chiavi) sono più lente delle query sulle proprietà basate solo su chiavi. I recuperi dei metadati del gruppo di entità sono leggermente più veloci rispetto al recupero di un'entità normale.
Query dei metadati
Tre tipi di entità speciali sono riservati alle query sui metadati:
Entità | Descrizione |
---|---|
__namespace__ |
Utilizzato per trovare tutti gli spazi dei nomi utilizzati nelle entità dell'applicazione. |
__kind__ |
Utilizzato per eseguire query su un tipo specifico. |
__property__ |
Utilizzato per eseguire query in base a una proprietà di un tipo. |
Questi tipi non entreranno in conflitto con altri con lo stesso nome che potrebbero già esistere nella tua applicazione. Eseguendo query su questi tipi speciali, puoi recuperare le entità contenenti i metadati desiderati.
Le entità restituite dalle query sui metadati vengono generate dinamicamente in base
allo stato attuale del database. Sebbene tu possa creare oggetti entità locali di tipo __namespace__
, __kind__
o __property__
, qualsiasi tentativo di memorizzarli nel database non andrà a buon fine.
Query dello spazio dei nomi
Puoi utilizzare una query dello spazio dei nomi per trovare tutti gli spazi dei nomi utilizzati nelle entità dell'applicazione. Ciò ti consente di eseguire attività come le funzioni amministrative in più spazi dei nomi.
Le query dello spazio dei nomi restituiscono entità del tipo speciale __namespace__
la cui chiave
è il nome di uno spazio dei nomi. Un'eccezione è lo spazio dei nomi predefinito
designato dalla stringa vuota ""
: poiché la stringa vuota non è un nome di chiave valido, questo spazio dei nomi è associato all'ID numerico 1
. Le query di questo tipo supportano il filtraggio solo per intervalli nella pseudoproprietà speciale __key__
, il cui valore è la chiave dell'entità. I risultati possono essere ordinati in ordine crescente (ma non
decrescente) in base al valore __key__
. Poiché le entità __namespace__
non hanno proprietà,
sia le query basate solo su chiavi sia quelle non basate solo su chiavi restituiscono le stesse informazioni.
L'esempio seguente restituisce un elenco degli spazi dei nomi di un'applicazione nell'intervallo
tra i valori assegnati alle variabili startNamespace
e endNamespace
:
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore C#.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Go.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Java.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Node.js.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore PHP.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Python.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Ruby.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
GQL
SELECT __key__ FROM __namespace__ WHERE __key__ >= KEY(__namespace__, 'namespace-a') AND __key__ < KEY(__namespace__, 'namespace-b')
Query per tipo
Le query per tipo restituiscono entità di tipo __kind__
il cui nome della chiave è il nome di un tipo di entità. Le query di questo tipo sono implicitamente limitate allo spazio dei nomi corrente e supportano il filtro solo per gli intervalli sulla pseudoproprietà __key__
. I risultati possono essere ordinati in ordine crescente (ma non decrescente)
in base al valore di __key__
. Poiché le entità __kind__
non hanno proprietà, sia le query solo con chiavi sia quelle senza chiavi restituiscono le stesse informazioni.
Il seguente esempio stampa un elenco dei tipi utilizzati in un'applicazione:
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore C#.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Go.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Java.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Node.js.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore PHP.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Python.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Ruby.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
GQL
SELECT __key__ FROM __kind__
Query sulle proprietà
Le query sulle proprietà restituiscono entità di tipo __property__
che indicano le proprietà
indicizzate associate a un tipo di entità. (Le proprietà non indicizzate non sono
incluse.) L'entità che rappresenta la proprietà p di tipo k è strutturata nel seguente modo:
- La chiave dell'entità ha il tipo
__property__
e il nome della chiave p. - La chiave padre dell'entità ha il tipo
__kind__
e il nome della chiave k. - La proprietà dell'array
property_representation
dell'entità contiene tutte le rappresentazioni della proprietà.
Ad esempio, se il tuo database contiene esattamente due entità Task
con proprietà name
e done
:
Key: 'Task:1'
name: 'Read some properties'
done: true
Key: 'Task:2'
name: 'Climb'
done: null
quindi le due entità restituite da una query __property__
saranno:
Key: '__kind__:Task/__property__:name'
property_representation: [ 'STRING' ]
Key: '__kind__:Task/__property__:done'
property_representation: [ 'BOOLEAN', 'NULL' ]
Le query sulle proprietà sono implicitamente limitate allo spazio dei nomi corrente e supportano
un filtraggio limitato con un
antenato o un intervallo sulla pseudoproprietà __key__
.
Una query di proprietà solo chiavi è più efficiente di una query non solo chiavi, in quanto non deve raccogliere le rappresentazioni della proprietà. L'esempio seguente recupera i nomi di tutti i tipi di entità di un'applicazione e le proprietà associate a ciascuno:
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore C#.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Go.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Java.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Node.js.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore PHP.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Python.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Ruby.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
GQL
SELECT __key__ FROM __property__
Query sulle proprietà: rappresentazioni delle proprietà
Le query sulle proprietà non solo sulle chiavi, note come query di rappresentazione delle proprietà,
restituiscono informazioni aggiuntive sui tipi di valori utilizzati per ciascuna proprietà. La proprietà
property_representation
nell'entità che rappresenta la proprietà p del
tipo k è un array contenente tutte le rappresentazioni del valore di p in qualsiasi
entità di tipo k.
Ogni valore ha la seguente rappresentazione (tieni presente che alcuni tipi di valori condividono le rappresentazioni):
Tipo di valore | Rappresentazione |
---|---|
Numero intero | INT64 |
Numero in virgola mobile | DOUBLE |
Booleano | BOOLEAN |
Stringa di testo | STRING |
Stringa di byte | STRING |
Data e ora | INT64 |
Chiave Datastore | REFERENCE |
Entità incorporata | STRING |
Array | rappresentazione degli elementi dell'array |
Punto geografico | POINT |
Null | NULL |
L'esempio seguente trova tutte le rappresentazioni delle proprietà di tipo Task
,
utilizzando una query sulla proprietà antenato:
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore C#.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Go.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Java.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Node.js.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore PHP.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Python.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Ruby.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
GQL
SELECT * FROM __property__ WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Task')
Query sulle proprietà: filtro
Le query delle proprietà supportano il filtro degli antenati su una chiave __kind__
o
__property__
, per limitare i risultati della query a un singolo tipo o proprietà, come mostrato
nella query di rappresentazione della proprietà riportata sopra.
Le query sulle proprietà possono anche essere filtrate con un intervallo sulla pseudoproprietà
__key__
, dove le chiavi indicano entità __kind__
o __property__
. I risultati possono essere ordinati in ordine crescente (ma non decrescente) in base al valore __key__
. Il filtro viene applicato alle coppie tipo-proprietà, ordinate prima per tipo e
poi per proprietà. Ad esempio, supponiamo di avere entità con queste
proprietà:
- tipo
Task
con proprietàcreated
priority
tags
- tipo
TaskList
con proprietàcreated
La seguente query di proprietà basata solo su chiavi:
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore C#.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Go.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Non applicabileJava
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Java.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Node.js.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Non applicabilePHP
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore PHP.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Python.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Non applicabileRuby
Per scoprire come installare e utilizzare la libreria client per Cloud Datastore, consulta Librerie client di Cloud Datastore. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Datastore Ruby.
Per eseguire l'autenticazione in Cloud Datastore, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
GQL
SELECT __key__ FROM __property__ WHERE __key__ >= KEY(__kind__, 'Task', __property__, 'priority')
raccoglierà le seguenti coppie di tipo e nome della proprietà:
Task, priority
Task, tags
TaskList, created
Nota che i risultati includono proprietà dei tipi Task
e TaskList
, ma
non includono la proprietà created
del tipo Task
, perché non rientra
nell'intervallo specificato per la query.