항목, 속성, 키

Google Cloud Datastore의 데이터 객체는 항목으로 알려져 있습니다. 항목에는 하나 이상의 명명된 속성이 있으며 각 속성에는 하나 이상의 값이 있을 수 있습니다. 동일한 종류의 항목에 동일한 속성이 있을 필요가 없으며 지정된 속성의 항목 값이 모두 동일한 데이터 유형일 필요가 없습니다. 필요한 경우 애플리케이션이 자체 데이터 모델에 이러한 제한을 설정하고 시행할 수 있습니다.

Cloud Datastore는 다양한 속성 값의 데이터 유형을 지원합니다. 여기에는 다음 사항이 포함됩니다.

  • 정수
  • 부동 소수점 수
  • 문자열
  • 날짜
  • 바이너리 데이터

Cloud Datastore의 각 항목에는 항목을 고유하게 식별하는 가 있습니다. 키는 다음 구성요소로 구성됩니다.

  • 다중 테넌트 지원을 허용하는 항목의 네임스페이스
  • Cloud Datastore 쿼리 목적으로 분류되는 항목의 종류
  • 개별 항목의 식별자(다음 중 하나일 수 있음)
    • 키 이름 문자열
    • 정수 숫자 ID
  • Cloud Datastore 계층 구조에서 항목을 찾는 선택적 상위 경로

애플리케이션은 항목의 키를 사용하여 Cloud Datastore에서·개별 항목을 가져오거나 항목의 키 또는 속성 값에 따라 쿼리를 실행하여 하나 이상의 항목을 검색할 수 있습니다.

Cloud Datastore 자체는 지정된 속성에 특정 유형의 값이 있는지 여부와 같은 항목 구조에 대한 제한을 시행하지 않습니다. 이 작업은 애플리케이션에 남아 있습니다.

이 페이지의 스니펫은 Google Cloud Datastore 시작하기의 예에 따라 빌드되었습니다.

항목 작업

애플리케이션에서는 Cloud Datastore API를 사용하여 항목을 생성, 검색, 업데이트, 삭제할 수 있습니다. 애플리케이션이 항목의 전체 키를 알고 있거나 상위 키, 종류, 식별자에서 파생시킬 수 있는 경우 해당 키를 사용하여 항목에서 직접 작동할 수 있습니다. 또한 애플리케이션은 Cloud Datastore 쿼리의 결과로 항목의 키를 얻을 수도 있습니다. 자세한 내용은 Cloud Datastore 쿼리 항목을 참조하세요.

항목 생성

항목을 초기화하고 해당 속성을 설정하여 새 항목을 생성합니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

Entity task = Entity.newBuilder(taskKey)
    .set("category", "Personal")
    .set("done", false)
    .set("priority", 4)
    .set("description", "Learn Cloud Datastore")
    .build();

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

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

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

upsert(Cloud Datastore에 항목이 이미 있는 경우 항목을 덮어 씀) 또는 insert(Cloud Datastore에 항목 키가 없어야 함)를 사용하여 Cloud Datastore에 항목을 저장할 수 있습니다.

항목 upsert 방법은 다음과 같습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

_db.Upsert(_sampleTask);

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

key, err := client.Put(ctx, key, task)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

complete_key = client.key('Task', 'sample_task')

task = datastore.Entity(key=complete_key)

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

client.put(task)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

항목 insert 방법은 다음과 같습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

_, 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
})

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

항목 검색

Cloud Datastore에서 항목을 검색하려면 lookup에 해당 키를 사용하세요.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

Entity task = _db.Lookup(_sampleTask.Key);

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

var task Task
err := client.Get(ctx, taskKey, &task)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

Entity task = datastore.get(taskKey);

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key('Task', 'sample_task')
task = client.get(key)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

항목 업데이트

기존 항목을 update하려면 이전에 검색한 항목을 속성을 수정하고 키를 사용하여 저장하세요.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

with client.transaction():
    key = client.key('Task', 'sample_task')
    task = client.get(key)

    task['done'] = True

    client.put(task)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

datastore.transaction do |tx|
  task = datastore.find "Task", "sampleTask"
  task["priority"] = 5
  datastore.save task
end

제공된 데이터가 기존 항목을 덮어씁니다. 전체 객체를 Cloud Datastore로 보내야 합니다. 항목이 없으면 업데이트가 실패합니다. 항목을 업데이트 또는 생성하려면 이전에 설명한 대로 upsert를 사용합니다. 트랜잭션을 사용하면 단일 원자 트랜잭션에서 getupdate 작업을 수행할 수 있습니다.

항목 삭제

항목의 키가 제공되면 항목을 delete할 수 있습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

_db.Delete(_sampleTask.Key);

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

err := client.Delete(ctx, key)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

datastore.delete(taskKey);

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

await datastore.delete(taskKey);
// Task deleted successfully.

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

$datastore->delete($taskKey);

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key('Task', 'sample_task')
client.delete(key)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

일괄 작업

Cloud Datastore에서 단일 Cloud Datastore 호출로 여러 객체에 대해 작업할 수 있는 일괄 버전의 작업을 지원합니다.

이러한 일괄 호출은 단 하나의 서비스 호출에 대한 오버헤드를 발생하므로 각각의 개별 항목에 대해 개별 호출을 수행하는 것보다 빠릅니다. 여러 항목 그룹이 관련된 경우 모든 그룹에 대한 작업이 서버 측에서 동시에 수행됩니다.

예를 들어 여러 항목을 upsert할 수 있습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

$datastore->upsertBatch($tasks);

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

client.put_multi([task1, task2])

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

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

tasks = datastore.save(task1, task2)
task_key1 = tasks[0].key
task_key2 = tasks[1].key

여러 항목을 lookup할 수 있습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

var tasks []*Task
err := client.GetMulti(ctx, taskKeys, &tasks)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const keys = [taskKey1, taskKey2];

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

$result = $datastore->lookupBatch($keys);
if (isset($result['found'])) {
    // $result['found'] is an array of entities.
} else {
    // No entities found.
}

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

tasks = client.get_multi(keys)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task_key1 = datastore.key "Task", "sampleTask1"
task_key2 = datastore.key "Task", "sampleTask2"
tasks = datastore.find_all task_key1, task_key2

여러 항목을 삭제할 수 있습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

err := client.DeleteMulti(ctx, taskKeys)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

datastore.delete(taskKey1, taskKey2);

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const keys = [taskKey1, taskKey2];

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

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

$datastore->deleteBatch($keys);

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

client.delete_multi(keys)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task_key1 = datastore.key "Task", "sampleTask1"
task_key2 = datastore.key "Task", "sampleTask2"
datastore.delete task_key1, task_key2

일괄 작업은 가격 책정 및 할당량에 설명된 읽기, 쓰기, 삭제 비용을 변경하지 않습니다. 각 키가 있는지 여부와 관계없이 일괄 처리된 작업에서 모든 키에 대해 요금이 부과됩니다.

작업과 관련된 항목의 크기는 읽기, 쓰기, 삭제 비용에 영향을 주지 않습니다. 그러나 항목의 크기는 저장용량 크기 비용에 영향을 줍니다.

종류 및 식별자

각 Cloud Datastore 항목은 쿼리를 위해 항목을 분류하는 특정 종류에 속합니다. 예를 들어 작업 목록 애플리케이션에서는 Task 종류의 항목으로 완료할 각 작업을 나타낼 수 있습니다.

두 개의 밑줄(__)로 시작하는 모든 종류의 이름은 예약되어 있으며 사용할 수 없습니다.

식별자 할당

종류 외에도 각 항목에는 항목이 생성될 때 할당된 식별자가 있습니다. 식별자는 항목 키의 일부이므로 항목과 영구적으로 연관되며 변경할 수 없습니다. 식별자를 할당할 수 있는 두 가지 방법은 다음과 같습니다.

  • 애플리케이션에서 항목에 대한 고유한 키 이름 문자열을 지정할 수 있습니다.
  • Cloud Datastore에서 항목에 정수 숫자 ID를 자동으로 할당하도록 할 수 있습니다.

다음은 'sampleTask'라는 키 이름을 식별자로 사용하여 종류가 Task인 키를 생성하는 예입니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

taskKey := datastore.NameKey("Task", "sampletask", nil)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const taskKey = datastore.key(['Task', 'sampleTask']);

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key('Task', 'sample_task')

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task_key = datastore.key "Task", "sampleTask"

Cloud Datastore에서는 자동으로 ID를 할당할 수도 있습니다. Cloud Datastore는 균일하게 배포된 사용하지 않은 ID의 임의 순서를 생성합니다. 각 ID의 최대 길이는 16자입니다.

다음은 키 이름을 사용하지 않고 종류가 Task인 키를 생성하는 예입니다. 불완전한 키가 있는 항목이 Cloud Datastore에 저장되면 항목의 전체 키(자동으로 할당된 ID 포함)가 반환됩니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

taskKey := datastore.IncompleteKey("Task", nil)

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const taskKey = datastore.key('Task');

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key('Task')

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task_key = datastore.key "Task"

사용자에게 또는 주문에 따라 항목 ID를 표시하려면 수동으로 할당하는 것이 가장 좋습니다.

상위 경로

Cloud Datastore의 항목은 파일 시스템의 디렉토리 구조와 유사한 계층적으로 구성된 공간을 형성합니다. 항목을 생성할 때 선택적으로 다른 항목을 해당 항목의 상위로 지정할 수 있습니다. 새 항목은 상위 항목의 하위입니다. 파일 시스템과 달리 상위 항목이 실제로 존재할 필요는 없습니다. 상위가 없는 항목은 루트 항목입니다. 항목과 상위 요소 간의 연결은 영구적이며 항목이 생성되면 변경할 수 없습니다. Cloud Datastore는 상위 요소가 동일한 두 개의 항목 또는 두 개의 루트 항목(상위 요소가 없는 항목)에 동일한 숫자 ID를 할당하지 않습니다.

항목의 상위, 상위의 상위 등은 재귀적으로 해당 상위가 되며, 하위, 하위의 하위 등은 하위가 됩니다. 루트 항목에서 시작하고, 상위에서 하위로 진행하고, 지정된 항목으로 이어지는 항목의 시퀀스는 항목의 상위 경로를 구성합니다. 항목을 식별하는 전체 키는 상위 경로를 지정하고 항목 자체로 종료되는 종류-식별자 쌍의 시퀀스로 구성됩니다.

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

루트 항목의 경우 상위 경로는 비어 있으며, 키는 항목의 고유한 종류 및 식별자로만 구성됩니다.

[User:alice]

상위 수준

상위 수준을 사용하여 데이터를 구성합니다. 예를 들어 애플리케이션에서 Task 항목을 TaskList 항목별로 구성한 경우 상위 수준 하나를 사용합니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const taskKey = datastore.key([
  'TaskList',
  'default',
  'Task',
  'sampleTask',
]);

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key('TaskList', 'default', 'Task', 'sample_task')
# Alternatively
parent_key = client.key('TaskList', 'default')
key = client.key('Task', 'sample_task', parent=parent_key)

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

애플리케이션에서 Task 항목을 먼저 User 항목별로 구성한 다음 TaskList 항목별로 구성한 경우 여러 상위 수준을 사용합니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const taskKey = datastore.key([
  'User',
  'alice',
  'TaskList',
  'default',
  'Task',
  'sampleTask',
]);

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

key = client.key(
    'User', 'alice',
    'TaskList', 'default',
    'Task', 'sample_task')

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

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

위 예에 표시된 대로 상위가 있는 항목을 생성할 때 상위의 전체 상위 경로를 지정합니다.

사용자 프로필을 유지 관리하는 애플리케이션에는 사용자 프로필 데이터에 대해 상위 수준 하나만 필요할 수 있습니다. 예를 들어 Profile 항목에 단일 수준 User 상위 경로를 사용합니다.

[User:alice, Profile:public]

회의실 예약을 제공하는 애플리케이션에는 Room 항목에 대한 여러 수준의 Building/Floor 상위 경로와 같이 여러 수준의 상위가 필요할 수 있습니다.

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

항목 그룹

항목 그룹은 루트 항목과 모든 해당 하위 항목으로 구성됩니다. 애플리케이션에서는 일반적으로 항목 그룹을 사용하여 매우 관련된 데이터를 구성합니다. 예를 들어 애플리케이션에서는 항목 그룹을 사용하여 제품 하나 또는 사용자 프로필 하나에 대한 데이터를 저장할 수 있습니다. 항목 그룹을 사용할 때 고려할 일관성 수준과 성능에 대한 자세한 내용은 트랜잭션 및 항목 그룹을 참조하세요.

시스템 할당 ID 값은 항목 그룹에 고유합니다. 한 개의 항목 그룹 또는 네임스페이스에서 다른 그룹이나 네임스페이스로 항목을 복사하고 키의 ID 부분을 보존하려는 경우 향후 할당에서 Datastore가 해당 ID를 선택하지 못하도록 먼저 ID를 할당합니다.

속성 및 값 유형

항목과 연관된 데이터 값은 하나 이상의 속성으로 구성됩니다. 각 속성에는 이름과 하나 이상의 값이 있습니다.

속성에는 둘 이상의 유형 값이 있을 수 있으며, 두 개의 항목에 동일한 속성의 서로 다른 유형 값이 있을 수 있습니다. 속성을 색인화하거나 색인화하지 않을 수 있습니다(속성 p에서 정렬 또는 필터링되는 쿼리는 p가 색인화되지 않은 항목을 무시함).

몇 가지 속성 예는 다음과 같습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

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

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

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

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

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

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

task = datastore.Entity(
    key,
    exclude_from_indexes=['description'])
task.update({
    'category': 'Personal',
    'description': 'Learn Cloud Datastore',
    'created': datetime.datetime.utcnow(),
    'done': False,
    'priority': 4,
    'percent_complete': 10.5,
})

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task = datastore.entity "Task" do |t|
  t["category"] = "Personal"
  t["created"] = Time.now
  t["done"] = false
  t["priority"] = 4
  t["percent_complete"] = 10.0
  t["description"] = "Learn Cloud Datastore"
  t.exclude_from_indexes! "description", true
end

둘 이상의 값이 있는 속성은 배열 속성이라고 합니다. 이 예에는 두 개의 배열 속성이 포함되어 있습니다. 첫 번째는 이름이 tags이며 funprogramming 값이 있습니다. 두 번째는 이름이 collaborators이며 alicebob 값이 있습니다.

C#

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore C# API 참조 문서를 참조하세요.

Entity task = new Entity()
{
    Key = _db.CreateKeyFactory("Task").CreateKey("sampleTask"),
    ["collaborators"] = new ArrayValue() { Values = { "alice", "bob" } },
    ["tags"] = new ArrayValue() { Values = { "fun", "programming" } }
};

Go

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Go API 참조 문서를 참조하세요.

type Task struct {
	Tags          []string
	Collaborators []string
}
task := &Task{
	Tags:          []string{"fun", "programming"},
	Collaborators: []string{"alice", "bob"},
}

자바

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore 자바 API 참조 문서를 참조하세요.

Entity task = Entity.newBuilder(taskKey)
    .set("tags", "fun", "programming")
    .set("collaborators", "alice", "bob")
    .build();

Node.js

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Node.js API 참조 문서를 참조하세요.

const task = {
  tags: ['fun', 'programming'],
  collaborators: ['alice', 'bob'],
};

PHP

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore PHP API 참조 문서를 참조하세요.

$task = $datastore->entity(
    $key,
    [
        'tags' => ['fun', 'programming'],
        'collaborators' => ['alice', 'bob']
    ]
);

Python

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Python API 참조 문서를 참조하세요.

task = datastore.Entity(key)
task.update({
    'tags': [
        'fun',
        'programming'
    ],
    'collaborators': [
        'alice',
        'bob'
    ]
})

Ruby

Cloud Datastore용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Cloud Datastore 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Cloud Datastore Ruby API 참조 문서를 참조하세요.

task = datastore.entity "Task", "sampleTask" do |t|
  t["tags"] = ["fun", "programming"]
  t["collaborators"] = ["alice", "bob"]
end

JSON에서 배열 속성은 ArrayValue 유형인 arrayValue 필드를 사용하고 values 필드를 값 배열로 설정하여 할당할 수 있습니다. 색인화하지 않을 속성의 경우 속성 값 객체의 excludeFromIndexes 필드를 true로 설정해야 합니다.

프로토콜 버퍼에서 배열 속성은 ArrayValue 유형인 array_value 필드를 사용하고 values 필드를 여러 Value 객체로 채워 할당할 수 있습니다. 색인화하지 않을 속성의 경우 Valueexclude_from_indexes 필드를 true로 설정해야 합니다.

속성은 항목의 속성 이름과 값이 포함된 string/value 맵으로 저장됩니다. 값에 대해 지원되는 유형은 다음과 같습니다.

배열

  • JSON
    • 필드 이름: arrayValue
    • 유형: JSON 값 객체의 배열이 포함된 ArrayValue 객체
  • 프로토콜 버퍼
    • 필드 이름: array_value
    • 유형: 하나 이상의 Value 메시지가 포함된 ArrayValue 메시지
  • 정렬 순서: 없음
  • 참고: 다른 배열 값을 포함할 수 없습니다. 값 인스턴스는 meaning 또는 exclude_from_indexes로 설정하면 안됩니다.

부울

  • JSON
    • 필드 이름: booleanValue
    • 유형: true 또는 false
  • 프로토콜 버퍼
    • 필드 이름: boolean_value
    • 유형: bool
  • 정렬 순서: false<true

blob

  • JSON
    • 필드 이름: blobValue
    • 유형: 문자열로 base64 인코딩이어야 합니다.
  • 프로토콜 버퍼
    • 필드 이름: blob_value
    • 유형: bytes
  • 정렬 순서: 바이트 순서
  • 참고: 속성이 색인화된 경우 최대 1,500바이트이며 그렇지 않은 경우 최대 1,048,487바이트(1MiB - 89바이트)입니다.

날짜 및 시간

  • JSON
    • 필드 이름: timestampValue
    • 유형: 문자열(밀리초가 있는 RFC 3339 형식, 예: 2013-05-14T00:01:00.234Z)
  • 프로토콜 버퍼
    • 필드 이름: timestamp_value
    • 유형: Timestamp
  • 정렬 순서: 시간순
  • 참고
    • Cloud Datastore에 저장될 때는 마이크로초까지만 정확하며 추가 정밀도는 버림으로 처리됩니다.
    • 프로젝션 쿼리의 일부로 반환될 때 Cloud Datastore는 타임스탬프 값을 마이크로초 정수 값으로 변환합니다.

내장 항목

  • JSON
    • 필드 이름: entityValue
    • 유형: JSON 항목
  • 프로토콜 버퍼
    • 필드 이름: entity_value
    • 유형: Entity 메시지
  • 정렬 순서: 없음
  • 참고: 색인화될 때 하위 속성에 대해 쿼리할 수 있습니다. 색인화에서 이 값을 제외하면 모든 하위 속성도 색인화에서 제외됩니다.

부동 소수점 수

  • JSON
    • 필드 이름: doubleValue
    • 유형: 숫자
  • 프로토콜 버퍼
    • 필드 이름: double_value
    • 유형: double
  • 정렬 순서: 숫자
  • 참고: 64비트 배정밀도, IEEE 754

지리적 지점

  • JSON
    • 필드 이름: geoPointValue
    • 유형: JSON 위도/경도 쌍
  • 프로토콜 버퍼
    • 필드 이름: geo_point_value
    • 유형: LatLng 메시지
  • 정렬 순서: 위도, 경도순

정수

  • JSON
    • 필드 이름: integerValue
    • 유형: 숫자 또는 문자열. 숫자로 정확하게 표현할 수 없는 정수에는 문자열을 사용하세요.
  • 프로토콜 버퍼
    • 필드 이름: integer_value
    • 유형: int64
  • 정렬 순서: 숫자

  • JSON
    • 필드 이름: keyValue
    • 유형: JSON Cloud Datastore 키
  • 프로토콜 버퍼
    • 필드 이름: key_value
    • 유형: Key 메시지
  • 정렬 순서: 경로 요소 기준(종류, 식별자, 종류, 식별자...)

Null

  • JSON
    • 필드 이름: nullValue
    • 유형: null
  • 프로토콜 버퍼
    • 필드 이름: null_value
    • 유형: NullValue
  • 정렬 순서: 없음

텍스트 문자열

  • JSON
    • 필드 이름: stringValue
    • 유형: 문자열
  • 프로토콜 버퍼
    • 필드 이름: string_value
    • 유형: string
  • 정렬 순서: UTF-8 인코딩 바이트 순서
  • 참고: 속성이 색인화된 경우 최대 1,500바이트이며, 그렇지 않은 경우 최대 1,048,487바이트(1MiB - 89바이트)입니다.

값 유형 순서

쿼리에 혼합된 유형 값이 있는 속성이 포함된 경우 Cloud Datastore에서는 내부 표현을 기준으로 확정된 순서를 사용합니다. 순서는 다음 목록과 같습니다.

  1. Null 값
  2. 고정 소수점 수
    • 정수
    • 날짜 및 시간
  3. 부울 값
  4. 바이트 문자열
  5. 유니코드 문자열
  6. 부동 소수점 수
  7. 지리적 지점
  8. Cloud Datastore 키
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud Datastore 문서