Reference documentation and code samples for the Firestore in Datastore mode API class Google::Cloud::Datastore::Key.
Key
Every Datastore record has an identifying key, which includes the record's entity kind and a unique identifier. The identifier may be either a key name string, assigned explicitly by the application, or an integer numeric ID, assigned automatically by Datastore.
Inherits
- Object
Example
require "google/cloud/datastore" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
Methods
#complete?
def complete?() -> BooleanDetermine if the key is complete. A complete key has either an id or a name.
Inverse of #incomplete?
- (Boolean)
#database
def database() -> StringThe database of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", database: "my-todo-database", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.database #=> "my-todo-database"
#database=
def database=(value) -> StringThe database of the Key.
- value (String)
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", database: "my-todo-database", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.database #=> "my-todo-database"
#database_id
def database_id() -> StringThe database of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", database: "my-todo-database", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.database #=> "my-todo-database"
#database_id=
def database_id=(value) -> StringThe database of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", database: "my-todo-database", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.database #=> "my-todo-database"
#dataset_id
def dataset_id() -> StringThe project of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#dataset_id=
def dataset_id=(value) -> StringThe project of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#id
def id() -> Integer, nilThe id of the Key.
- (Integer, nil)
require "google/cloud/datastore" task_key = Google::Cloud::Datastore::Key.new "Task", 123456 task_key.id #=> 123456
#incomplete?
def incomplete?() -> BooleanDetermine if the key is incomplete. An incomplete key has neither an id nor a name.
Inverse of #complete?
- (Boolean)
#initialize
def initialize(kind = nil, id_or_name = nil) -> Google::Cloud::Datastore::Dataset::KeyCreate a new Key instance.
- kind (String) — The kind of the Key. This is optional.
- id_or_name (Integer, String) — The id or name of the Key. This is optional.
- (Google::Cloud::Datastore::Dataset::Key)
require "google/cloud/datastore" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
#kind
def kind() -> StringThe kind of the Key.
- (String)
require "google/cloud/datastore" key = Google::Cloud::Datastore::Key.new "TaskList" key.kind #=> "TaskList" key.kind = "Task"
#kind=
def kind=(value) -> StringThe kind of the Key.
- value (String)
- (String)
require "google/cloud/datastore" key = Google::Cloud::Datastore::Key.new "TaskList" key.kind #=> "TaskList" key.kind = "Task"
#name
def name() -> String, nilThe name of the Key.
- (String, nil)
require "google/cloud/datastore" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask" task_key.name #=> "sampleTask"
#namespace
def namespace() -> String, nilThe namespace of the Key.
- (String, nil)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.namespace #=> "example-ns"
#namespace=
def namespace=(value) -> String, nilThe namespace of the Key.
- value (String, nil)
- (String, nil)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.namespace #=> "example-ns"
#parent
def parent() -> Key, nilThe parent of the Key.
- (Key, nil)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new task_list = datastore.find "TaskList", "default" query = datastore.query("Task"). ancestor(task_list) lists = datastore.run query lists.first.key.parent # Key("TaskList", "default")
#parent=
def parent=(new_parent) -> Key, nilSet the parent of the Key.
- value (Key, nil)
- (Key, nil)
require "google/cloud/datastore" parent_key = Google::Cloud::Datastore::Key.new "TaskList", "default" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask" task_key.parent = parent_key
With multiple levels:
require "google/cloud/datastore" user_key = Google::Cloud::Datastore::Key.new "User", "alice" list_key = Google::Cloud::Datastore::Key.new "TaskList", "default" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask" list_key.parent = user_key task_key.parent = list_key
#path
def path() -> Array<Array<(String, String)>>Represent the Key's path (including parent) as an array of arrays. Each inner array contains two values, the kind and the id or name. If neither an id or name exist then nil will be returned.
- (Array<Array<(String, String)>>)
require "google/cloud/datastore" parent_key = Google::Cloud::Datastore::Key.new "TaskList", "default" task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask" task_key.parent = parent_key task_key.path #=> [["TaskList", "default"], ["Task", "sampleTask"]]
#project
def project() -> StringThe project of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#project=
def project=(value) -> StringThe project of the Key.
- value (String)
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#project_id
def project_id() -> StringThe project of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#project_id=
def project_id=(value) -> StringThe project of the Key.
- (String)
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new( project: "my-todo-project", keyfile: "/path/to/keyfile.json" ) task = datastore.find "Task", "sampleTask" task.key.project #=> "my-todo-project"
#serialized_size
def serialized_size()The number of bytes the Key will take to serialize during API calls.