Entità, proprietà e chiavi

Gli oggetti dati in Firestore in modalità Datastore sono noti come entità. Un'entità ha una o più proprietà denominate, ognuna delle quali può avere uno o più valori. Non è necessario che le entità dello stesso tipo abbiano le stesse proprietà e che i valori di un'entità per una determinata proprietà non debbano essere dello stesso tipo di dati. Se necessario, un'applicazione può stabilire e applicare tali limitazioni nel proprio modello dei dati.

La modalità Datastore supporta una serie di tipi di dati per i valori delle proprietà. tra cui:

  • Numero intero
  • Numeri con rappresentazione in virgola mobile
  • Stringa
  • Date
  • Dati binari

Ogni entità in un database in modalità Datastore ha una chiave che la identifica in modo univoco. La chiave è costituita dai seguenti componenti:

  • Lo spazio dei nomi dell'entità, che consente la multitenancy.
  • Il tipo dell'entità, che lo classifica ai fini delle query
  • Un identificatore per la singola entità, che può essere
    • Una stringa del nome della chiave
    • un ID numerico intero
  • Un percorso del predecessore facoltativo che individua l'entità all'interno della gerarchia del database

Un'applicazione può recuperare una singola entità dal database utilizzando la chiave dell'entità oppure può recuperare una o più entità emettendo una query basata sulle chiavi o sui valori della proprietà delle entità.

Firestore in modalità Datastore non applica alcuna restrizione alla struttura delle entità, ad esempio se una determinata proprietà ha un valore di un tipo particolare; questa attività viene lasciata all'applicazione.

Gli snippet in questa pagina si basano sull'esempio riportato nella Guida introduttiva a Firestore in modalità Datastore.

Utilizzo delle entità

Le applicazioni possono utilizzare l'API Firestore in modalità Datastore per creare, recuperare, aggiornare ed eliminare le entità. Se l'applicazione conosce la chiave completa di un'entità (o può ricavarla dalla chiave padre, dal tipo e dall'identificatore), può utilizzarla per operare direttamente sull'entità. Un'applicazione può anche ottenere la chiave di un'entità a seguito di una query. Per ulteriori informazioni, consulta l'argomento Query.

Creazione di un'entità

Per creare una nuova entità, inizializzala e impostane le 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.

Entity task = new Entity()
{
    Key = _db.CreateKeyFactory("Task").CreateKey("sampleTask"),
    ["category"] = "Personal",
    ["done"] = false,
    ["priority"] = 4,
    ["description"] = "Learn Cloud Datastore"
};

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.

type Task struct {
	Category        string
	Done            bool
	Priority        float64
	Description     string `datastore:",noindex"`
	PercentComplete float64
	Created         time.Time
}
task := &Task{
	Category:        "Personal",
	Done:            false,
	Priority:        4,
	Description:     "Learn Cloud Datastore",
	PercentComplete: 10.0,
	Created:         time.Now(),
}

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.

Key taskKey = datastore.newKeyFactory().setKind("Task").newKey("sampleTask");
Entity task =
    Entity.newBuilder(taskKey)
        .set("category", "Personal")
        .set("done", false)
        .set("priority", 4)
        .set("description", "Learn Cloud Datastore")
        .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 task = {
  category: 'Personal',
  done: false,
  priority: 4,
  description: 'Learn Cloud Datastore',
};

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.

$task = $datastore->entity('Task', [
    'category' => 'Personal',
    'done' => false,
    'priority' => 4,
    'description' => 'Learn Cloud Datastore'
]);

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()

task = datastore.Entity(client.key("Task"))
task.update(
    {
        "category": "Personal",
        "done": False,
        "priority": 4,
        "description": "Learn Cloud Datastore",
    }
)

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 = datastore.entity "Task" do |t|
  t["category"] = "Personal"
  t["done"] = false
  t["priority"] = 4
  t["description"] = "Learn Cloud Datastore"
end

Puoi salvare l'entità nel database utilizzando upsert (che sovrascriverà un'entità se esiste già in modalità Datastore) o insert (che richiede che la chiave dell'entità non esista già).

Ecco come upsert un'entità:

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.

_db.Upsert(_sampleTask);

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.IncompleteKey("Task", nil)
key, err := client.Put(ctx, key, task)

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.

Entity task = Entity.newBuilder(keyFactory.newKey("sampleTask")).build();
datastore.put(task);

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 taskKey = datastore.key('Task');
const task = {
  category: 'Personal',
  done: false,
  priority: 4,
  description: 'Learn Cloud Datastore',
};

const entity = {
  key: taskKey,
  data: task,
};

await datastore.upsert(entity);
// Task inserted successfully.

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.

$key = $datastore->key('Task', 'sampleTask');
$task = $datastore->entity($key, [
    'category' => 'Personal',
    'done' => false,
    'priority' => 4,
    'description' => 'Learn Cloud Datastore'
]);
$datastore->upsert($task);

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()

complete_key = client.key("Task", "sampleTask")

task = datastore.Entity(key=complete_key)

task.update(
    {
        "category": "Personal",
        "done": False,
        "priority": 4,
        "description": "Learn Cloud Datastore",
    }
)

client.put(task)

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_name = "sampleTask"
task = datastore.entity "Task", task_name do |t|
  t["category"] = "Personal"
  t["done"] = false
  t["priority"] = 4
  t["description"] = "Learn Cloud Datastore"
end
datastore.save task

Ecco come insert un'entità:

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.

Entity task = new Entity()
{
    Key = _keyFactory.CreateIncompleteKey()
};
task.Key = _db.Insert(task);

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.

taskKey := datastore.NameKey("Task", "sampleTask", nil)
_, err := client.RunInTransaction(ctx, func(tx *datastore.Transaction) error {
	// We first check that there is no entity stored with the given key.
	var empty Task
	if err := tx.Get(taskKey, &empty); err != datastore.ErrNoSuchEntity {
		return err
	}
	// If there was no matching entity, store it now.
	_, err := tx.Put(taskKey, &task)
	return err
})

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.

Key taskKey = datastore.add(FullEntity.newBuilder(keyFactory.newKey()).build()).getKey();

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 taskKey = datastore.key('Task');
const task = {
  category: 'Personal',
  done: false,
  priority: 4,
  description: 'Learn Cloud Datastore',
};

const entity = {
  key: taskKey,
  data: task,
};

datastore.insert(entity).then(() => {
  // Task inserted successfully.
});

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.

$task = $datastore->entity('Task', [
    'category' => 'Personal',
    'done' => false,
    'priority' => 4,
    'description' => 'Learn Cloud Datastore'
]);
$datastore->insert($task);

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()

with client.transaction():
    incomplete_key = client.key("Task")

    task = datastore.Entity(key=incomplete_key)

    task.update(
        {
            "category": "Personal",
            "done": False,
            "priority": 4,
            "description": "Learn Cloud Datastore",
        }
    )

    client.put(task)

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.

datastore.transaction do |_tx|
  task = datastore.entity "Task" do |t|
    t["category"] = "Personal"
    t["done"] = false
    t["priority"] = 4
    t["description"] = "Learn Cloud Datastore"
  end
  datastore.save task
end

Recupero di un'entità

Per recuperare un'entità dal database, utilizza la sua chiave per una ricerca:

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.

Entity task = _db.Lookup(_sampleTask.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.

var task Task
taskKey := datastore.NameKey("Task", "sampleTask", nil)
err := client.Get(ctx, taskKey, &task)

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.

Entity task = datastore.get(taskKey);

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 taskKey = datastore.key('Task');
const [entity] = await datastore.get(taskKey);
// entity = {
//   category: 'Personal',
//   done: false,
//   priority: 4,
//   description: 'Learn Cloud Datastore',
//   [Symbol(KEY)]:
//    Key {
//      namespace: undefined,
//      id: '...',
//      kind: 'Task',
//      path: [Getter]
//    }
//   }
// };
console.log(entity);

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.

$key = $datastore->key('Task', 'sampleTask');
$task = $datastore->lookup($key);

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()

key = client.key("Task", "sampleTask")
task = client.get(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.

# task_name = "sampleTask"
task_key = datastore.key "Task", task_name
task = datastore.find task_key

Aggiornamento di un'entità

Per update un'entità esistente, modifica le proprietà dell'entità in precedenza recuperata e archiviala utilizzando la chiave:

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.

_sampleTask["priority"] = 5;
_db.Update(_sampleTask);

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.

taskKey := datastore.NameKey("Task", "sampleTask", nil)
tx, err := client.NewTransaction(ctx)
if err != nil {
	log.Fatalf("client.NewTransaction: %v", err)
}
var task Task
if err := tx.Get(taskKey, &task); err != nil {
	log.Fatalf("tx.Get: %v", err)
}
task.Priority = 5
if _, err := tx.Put(taskKey, &task); err != nil {
	log.Fatalf("tx.Put: %v", err)
}
if _, err := tx.Commit(); err != nil {
	log.Fatalf("tx.Commit: %v", err)
}

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.

Entity task = Entity.newBuilder(datastore.get(taskKey)).set("priority", 5).build();
datastore.update(task);

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 taskKey = datastore.key('Task');
const task = {
  category: 'Personal',
  done: false,
  priority: 4,
  description: 'Learn Cloud Datastore',
};

const entity = {
  key: taskKey,
  data: task,
};

await datastore.update(entity);
// Task updated successfully.

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.

$transaction = $datastore->transaction();
$key = $datastore->key('Task', 'sampleTask');
$task = $transaction->lookup($key);
$task['priority'] = 5;
$transaction->update($task);
$transaction->commit();

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()

with client.transaction():
    key = client.key("Task", "sampleTask")
    task = client.get(key)

    task["done"] = True

    client.put(task)

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_name = "sampleTask"
datastore.transaction do |_tx|
  task = datastore.find "Task", task_name
  task["priority"] = 5
  datastore.save task
end

I dati forniti sovrascrivono l'entità esistente. L'intero oggetto deve essere inviato al database. Se l'entità non esiste, l'aggiornamento non andrà a buon fine. Se vuoi aggiornare o creare un'entità, utilizza upsert come descritto in precedenza. L'utilizzo di una transazione consente di eseguire le operazioni get e update in un'unica transazione atomica.

Eliminazione di un'entità

Data la chiave di un'entità, puoi delete l'entità:

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.

_db.Delete(_sampleTask.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.

key := datastore.NameKey("Task", "sampletask", nil)
err := client.Delete(ctx, 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.

datastore.delete(taskKey);

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 taskKey = datastore.key('Task');
await datastore.delete(taskKey);
// Task deleted successfully.

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.

$datastore->delete($taskKey);

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()

key = client.key("Task", "sampleTask")
client.delete(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.

# task_name = "sampleTask"
task_key = datastore.key "Task", task_name
datastore.delete task_key

Operazioni batch

Firestore in modalità Datastore supporta le versioni batch delle operazioni che consentono di operare su più oggetti in una singola chiamata in modalità Datastore.

Queste chiamate in batch sono più veloci rispetto a effettuare chiamate separate per ogni singola entità, perché comportano l'overhead per una sola chiamata di servizio. Se sono coinvolti più gruppi di entità, il lavoro per tutti i gruppi viene eseguito in parallelo sul lato server.

Ad esempio, puoi upsert più entità:

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.

var taskList = new[]
{
    new Entity()
    {
        Key = _keyFactory.CreateIncompleteKey(),
        ["category"] = "Personal",
        ["done"] = false,
        ["priority"] = 4,
        ["description"] = "Learn Cloud Datastore"
    },
    new Entity()
    {
        Key = _keyFactory.CreateIncompleteKey(),
        ["category"] = "Personal",
        ["done"] = "false",
        ["priority"] = 5,
        ["description"] = "Integrate Cloud Datastore"
    }
};
var keyList = _db.Upsert(taskList[0], taskList[1]);

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.

tasks := []*Task{
	{
		Category:    "Personal",
		Done:        false,
		Priority:    4,
		Description: "Learn Cloud Datastore",
	},
	{
		Category:    "Personal",
		Done:        false,
		Priority:    5,
		Description: "Integrate Cloud Datastore",
	},
}
keys := []*datastore.Key{
	datastore.IncompleteKey("Task", nil),
	datastore.IncompleteKey("Task", nil),
}

keys, err := client.PutMulti(ctx, keys, tasks)

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.

FullEntity<IncompleteKey> task1 =
    FullEntity.newBuilder(keyFactory.newKey())
        .set("category", "Personal")
        .set("done", false)
        .set("priority", 4)
        .set("description", "Learn Cloud Datastore")
        .build();
FullEntity<IncompleteKey> task2 =
    Entity.newBuilder(keyFactory.newKey())
        .set("category", "Personal")
        .set("done", false)
        .set("priority", 5)
        .set("description", "Integrate Cloud Datastore")
        .build();
List<Entity> tasks = datastore.add(task1, task2);
Key taskKey1 = tasks.get(0).getKey();
Key taskKey2 = tasks.get(1).getKey();

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 taskKey1 = this.datastore.key(['Task', 1]);
const taskKey2 = this.datastore.key(['Task', 2]);

const task1 = {
  category: 'Personal',
  done: false,
  priority: 4,
  description: 'Learn Cloud Datastore',
};

const task2 = {
  category: 'Work',
  done: false,
  priority: 8,
  description: 'Integrate Cloud Datastore',
};

const entities = [
  {
    key: taskKey1,
    data: task1,
  },
  {
    key: taskKey2,
    data: task2,
  },
];

await datastore.upsert(entities);
// Tasks inserted successfully.

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.

$datastore->upsertBatch($tasks);

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()

task1 = datastore.Entity(client.key("Task", 1))

task1.update(
    {
        "category": "Personal",
        "done": False,
        "priority": 4,
        "description": "Learn Cloud Datastore",
    }
)

task2 = datastore.Entity(client.key("Task", 2))

task2.update(
    {
        "category": "Work",
        "done": False,
        "priority": 8,
        "description": "Integrate Cloud Datastore",
    }
)

client.put_multi([task1, task2])

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_1 = datastore.entity "Task" do |t|
  t["category"] = "Personal"
  t["done"] = false
  t["priority"] = 4
  t["description"] = "Learn Cloud Datastore"
end

task_2 = datastore.entity "Task" do |t|
  t["category"] = "Personal"
  t["done"] = false
  t["priority"] = 5
  t["description"] = "Integrate Cloud Datastore"
end

tasks = datastore.save task_1, task_2
task_key_1 = tasks[0].key
task_key_2 = tasks[1].key

Puoi cercare più entità:

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.

var keys = new Key[] { _keyFactory.CreateKey(1), _keyFactory.CreateKey(2) };
var tasks = _db.Lookup(keys[0], keys[1]);

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.

var taskKeys []*datastore.Key // Populated with incomplete keys.
tasks := make([]*Task, len(taskKeys))
err := client.GetMulti(ctx, taskKeys, &tasks)

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.

Iterator<Entity> tasks = datastore.get(taskKey1, taskKey2);

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 taskKey1 = this.datastore.key(['Task', 1]);
const taskKey2 = this.datastore.key(['Task', 2]);

const keys = [taskKey1, taskKey2];

const [tasks] = await datastore.get(keys);
// Tasks retrieved successfully.
console.log(tasks);

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->lookupBatch($keys);
if (isset($result['found'])) {
    // $result['found'] is an array of entities.
} else {
    // No entities found.
}

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()

keys = [client.key("Task", 1), client.key("Task", 2)]
tasks = client.get_multi(keys)

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_name_1 = "sampleTask1"
# task_name_2 = "sampleTask2"
task_key_1 = datastore.key "Task", task_name_1
task_key_2 = datastore.key "Task", task_name_2
tasks = datastore.find_all task_key_1, task_key_2

Puoi eliminare più entità:

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.

var keys = new Key[] { _keyFactory.CreateKey(1), _keyFactory.CreateKey(2) };
_db.Delete(keys);

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.

err := client.DeleteMulti(ctx, taskKeys)

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.

datastore.delete(taskKey1, taskKey2);

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 taskKey1 = this.datastore.key(['Task', 1]);
const taskKey2 = this.datastore.key(['Task', 2]);

const keys = [taskKey1, taskKey2];

await datastore.delete(keys);
// Tasks deleted successfully.

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.

$datastore->deleteBatch($keys);

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()

keys = [client.key("Task", 1), client.key("Task", 2)]
client.delete_multi(keys)

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_name_1 = "sampleTask1"
# task_name_2 = "sampleTask2"
task_key_1 = datastore.key "Task", task_name_1
task_key_2 = datastore.key "Task", task_name_2
datastore.delete task_key_1, task_key_2

Le operazioni collettive non modificano i costi di lettura, scrittura o eliminazione, che sono documentati in Prezzi e quota. Ti verrà addebitato un costo per ogni chiave in un'operazione in batch, indipendentemente dal fatto che esista o meno.

Le dimensioni delle entità coinvolte in un'operazione non influiscono sui costi di lettura, scrittura o eliminazione. Tuttavia, le dimensioni delle entità influiscono sui costi delle dimensioni di archiviazione.

Tipi e identificatori

Ogni entità rientra in un determinato tipo, che la classifica ai fini delle query: ad esempio, un'applicazione dell'elenco di attività potrebbe rappresentare ogni attività da completare con un'entità di tipo Task.

Tutti i nomi dei tipi che iniziano con due trattini bassi (__) sono riservati e non possono essere utilizzati.

Assegnazione di identificatori

Oltre a un tipo, ogni entità ha un identificatore, che viene assegnato al momento della creazione dell'entità. Poiché fa parte della chiave dell'entità, l'identificatore è associato in modo permanente all'entità e non può essere modificato. Può essere assegnato in uno di questi due modi:

  • L'applicazione può specificare la propria stringa nome chiave per l'entità.
  • Puoi fare in modo che Firestore in modalità Datastore assegni automaticamente all'entità un ID numerico intero.

L'esempio seguente crea una chiave con il tipo Task utilizzando un nome chiave, "sampleTask", come identificatore:

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.

Key key = _db.CreateKeyFactory("Task").CreateKey("sampleTask");

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.

taskKey := datastore.NameKey("Task", "sampletask", 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.

Key taskKey = datastore.newKeyFactory().setKind("Task").newKey("sampleTask");

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 taskKey = datastore.key(['Task', 'sampleTask']);

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.

$taskKey = $datastore->key('Task', 'sampleTask');

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()

key = client.key("Task", "sampleTask")

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_name = "sampleTask"
task_key = datastore.key "Task", task_name

La modalità Datastore può anche assegnare automaticamente gli ID. La modalità Datastore genera una sequenza casuale di ID inutilizzati distribuiti uniformemente. Ogni ID può essere composto da un massimo di 16 cifre decimali.

L'esempio seguente crea una chiave con tipo Task, senza utilizzare il nome della chiave. La chiave completa (incluso l'ID assegnato automaticamente) dell'entità verrà restituita quando un'entità con la chiave incompleta viene salvata in modalità Datastore:

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.

Key incompleteKey = _db.CreateKeyFactory("Task").CreateIncompleteKey();
Key key = _db.AllocateId(incompleteKey);

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.

// A complete key is assigned to the entity when it is Put.
taskKey := datastore.IncompleteKey("Task", 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.

KeyFactory keyFactory = datastore.newKeyFactory().setKind("Task");
Key taskKey = datastore.allocateId(keyFactory.newKey());

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 taskKey = datastore.key('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.

$taskKey = $datastore->key('Task');

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()

key = client.key("Task")

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_key = datastore.key "Task"

Se vuoi mostrare gli ID entità all'utente e/o in base al suo ordine, la cosa migliore da fare è utilizzare l'allocazione manuale.

Assegnare il tuo ID numerico

Anziché utilizzare le stringhe dei nomi di chiave o generare automaticamente ID numerici, a volte le applicazioni avanzate potrebbero voler assegnare manualmente i propri ID numerici alle entità che creano. Tieni presente, tuttavia, che non c'è nulla che impedisca al database in modalità Datastore di assegnare uno degli ID numerici manuali a un'altra entità. L'unico modo per evitare questi conflitti è fare in modo che l'applicazione ottenga un blocco di ID con il metodo allocateIds().

Il generatore di ID automatico della modalità Datastore terrà traccia degli ID assegnati con questi metodi ed eviterà di riutilizzarli per un'altra entità, in modo che tu possa utilizzarli in sicurezza senza conflitti. Non puoi scegliere manualmente quali valori vengono restituiti dal metodo allocateIds(). I valori restituiti da allocateIds() vengono assegnati in modalità Datastore.

Percorsi dei predecessori

Le entità in un database in modalità Datastore formano uno spazio strutturato in modo gerarchico simile alla struttura di directory di un file system. Quando crei un'entità, puoi facoltativamente specificare un'altra entità come entità padre; la nuova entità è un'entità secondaria dell'entità padre. Tieni presente che, a differenza di un file system, l'entità padre non deve esistere effettivamente. Un'entità senza un'entità padre è un'entità root. L'associazione tra un'entità e la relativa entità è permanente e non può essere modificata dopo aver creato l'entità. La modalità Datastore non assegnerà mai lo stesso ID numerico a due entità con lo stesso elemento padre o a due entità principali (senza un'entità padre).

L'entità padre, il genitore padre e così via in modo ricorsivo sono i antenati; i relativi figli, figli e così via sono i suoi discendenti. La sequenza di entità che inizia con un'entità radice e continua da principale a secondario, determinando una determinata entità, costituisce il percorso del predecessore dell'entità. La chiave completa che identifica l'entità è composta da una sequenza di coppie type-identifier che specifica il percorso del predecessore e termina con quelle dell'entità stessa:

[User:alice, TaskList:default, Task:sampleTask]

Per unentità base, il percorso predecessore è vuoto e la chiave è composta esclusivamente dal tipo e dall'identificatore dell'entità:

[User:alice]

Livelli dei genitori

Utilizza i livelli di genitori per organizzare i tuoi dati. Ad esempio, se la tua applicazione organizza le entità Task per entità TaskList, utilizza un livello padre:

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.

Key rootKey = _db.CreateKeyFactory("TaskList").CreateKey("default");
Key key = new KeyFactory(rootKey, "Task").CreateKey("sampleTask");

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.

parentKey := datastore.NameKey("TaskList", "default", nil)
taskKey := datastore.NameKey("Task", "sampleTask", parentKey)

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.

Key taskKey =
    datastore
        .newKeyFactory()
        .addAncestors(PathElement.of("TaskList", "default"))
        .setKind("Task")
        .newKey("sampleTask");

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 taskKey = datastore.key([
  'TaskList',
  'default',
  'Task',
  'sampleTask',
]);

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.

$taskKey = $datastore->key('TaskList', 'default')
    ->pathElement('Task', 'sampleTask');

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()

key = client.key("TaskList", "default", "Task", "sampleTask")
# Alternatively
parent_key = client.key("TaskList", "default")
key = client.key("Task", "sampleTask", parent=parent_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.

# task_list_name = "default"
# task_name = "sampleTask"
task_key = datastore.key [["TaskList", task_list_name], ["Task", task_name]]

Se la tua applicazione organizza prima le entità Task per User, poi per entità TaskList, utilizza più livelli di entità padre:

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.

Key rootKey = _db.CreateKeyFactory("User").CreateKey("Alice");
Key taskListKey = new KeyFactory(rootKey, "TaskList").CreateKey("default");
Key key = new KeyFactory(taskListKey, "Task").CreateKey("sampleTask");

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.

userKey := datastore.NameKey("User", "alice", nil)
parentKey := datastore.NameKey("TaskList", "default", userKey)
taskKey := datastore.NameKey("Task", "sampleTask", parentKey)

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.

KeyFactory keyFactory =
    datastore
        .newKeyFactory()
        .addAncestors(PathElement.of("User", "Alice"), PathElement.of("TaskList", "default"))
        .setKind("Task");
Key taskKey = keyFactory.newKey("sampleTask");

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 taskKey = datastore.key([
  'User',
  'alice',
  'TaskList',
  'default',
  'Task',
  'sampleTask',
]);

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.

$taskKey = $datastore->key('User', 'alice')
    ->pathElement('TaskList', 'default')
    ->pathElement('Task', 'sampleTask');

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()

key = client.key("User", "alice", "TaskList", "default", "Task", "sampleTask")

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.

# user_name = "alice"
# task_list_name = "default"
# task_name = "sampleTask"
task_key = datastore.key([
                           ["User", user_name],
                           ["TaskList", task_list_name],
                           ["Task", task_name]
                         ])

Come mostrato nell'esempio precedente, quando crei un'entità con un elemento padre, specifichi il percorso precedente dell'elemento padre.

Un'applicazione che mantiene i profili utente può richiedere un solo livello padre per i dati del profilo utente. Ad esempio, utilizza un percorso predecessore User a livello singolo per le entità Profile:

[User:alice, Profile:public]

Un'applicazione che offre la pianificazione delle sale conferenze potrebbe richiedere più livelli di livello padre, ad esempio un percorso predecessore Building/Floor di più livelli per le entità Room:

[Building:C, Floor:1, Room:123]

Gruppi di entità

Un gruppo di entità è un'entità base e tutti i suoi discendenti. Le applicazioni in genere utilizzano gruppi di entità per organizzare i dati altamente correlati. Ad esempio, un'applicazione potrebbe utilizzare un gruppo di entità per archiviare i dati su un prodotto o un profilo utente.

Proprietà e tipi di valori

I valori dei dati associati a un'entità sono costituiti da una o più proprietà. Ogni proprietà ha un nome e uno o più valori.

Una proprietà può avere valori di più di un tipo e due entità possono avere valori di tipi diversi per la stessa proprietà. Una proprietà può essere indicizzata o non indicizzata (le query che ordinano o filtrano in una proprietà p ignoreranno le entità in cui p non è indicizzato).

Alcuni esempi di 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.

Entity task = new Entity()
{
    Key = _db.CreateKeyFactory("Task").CreateKey("sampleTask"),
    ["category"] = "Personal",
    ["created"] = new DateTime(1999, 01, 01, 0, 0, 0, DateTimeKind.Utc),
    ["done"] = false,
    ["priority"] = 4,
    ["percent_complete"] = 10.0,
    ["description"] = new Value()
    {
        StringValue = "Learn Cloud Datastore",
        ExcludeFromIndexes = true
    },
};

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.

type Task struct {
	Category        string
	Done            bool
	Priority        int
	Description     string `datastore:",noindex"`
	PercentComplete float64
	Created         time.Time
}
task := &Task{
	Category:        "Personal",
	Done:            false,
	Priority:        4,
	Description:     "Learn Cloud Datastore",
	PercentComplete: 10.0,
	Created:         time.Now(),
}

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.

Entity task =
    Entity.newBuilder(taskKey)
        .set("category", "Personal")
        .set("created", Timestamp.now())
        .set("done", false)
        .set("priority", 4)
        .set("percent_complete", 10.0)
        .set(
            "description",
            StringValue.newBuilder("Learn Cloud Datastore").setExcludeFromIndexes(true).build())
        .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 task = [
  {
    name: 'category',
    value: 'Personal',
  },
  {
    name: 'created',
    value: new Date(),
  },
  {
    name: 'done',
    value: false,
  },
  {
    name: 'priority',
    value: 4,
  },
  {
    name: 'percent_complete',
    value: 10.0,
  },
  {
    name: 'description',
    value: 'Learn Cloud Datastore',
    excludeFromIndexes: 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.

$task = $datastore->entity(
    $key,
    [
        'category' => 'Personal',
        'created' => new DateTime(),
        'done' => false,
        'priority' => 4,
        'percent_complete' => 10.0,
        'description' => 'Learn Cloud Datastore'
    ],
    ['excludeFromIndexes' => ['description']]
);

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()

key = client.key("Task")
task = datastore.Entity(key, exclude_from_indexes=("description",))
task.update(
    {
        "category": "Personal",
        "description": "Learn Cloud Datastore",
        "created": datetime.datetime.now(tz=datetime.timezone.utc),
        "done": False,
        "priority": 4,
        "percent_complete": 10.5,
    }
)
client.put(task)

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