Class Datastore

Idiomatic class for interacting with Cloud Datastore. Uses the lower-level DatastoreClient class under the hood.

In addition to the constructor options shown here, the Datastore class constructor accepts the same options accepted by DatastoreClient.

The Datastore Emulator

Make sure you have the gcloud SDK installed, then run:

 $ gcloud beta emulators datastore start --no-legacy 

You will see the following printed:

 \[datastore\] API endpoint: http://localhost:8005 \[datastore\] If you are using a library that supports the DATASTORE\_EMULATOR\_HOST environment variable, run: \[datastore\] \[datastore\] export DATASTORE\_EMULATOR\_HOST=localhost:8005 \[datastore\] \[datastore\] Dev App Server is now running. 

Set that environment variable and your localhost Datastore will automatically be used. You can also pass this address in manually with apiEndpoint.

Additionally, DATASTORE_PROJECT_ID is recognized. If you have this set, you don't need to provide a projectId.

See Cloud Datastore Concepts Overview

Inheritance

DatastoreRequest > Datastore

Package

@google-cloud/datastore

Constructors

(constructor)(options)

constructor(options?: DatastoreOptions);

Constructs a new instance of the Datastore class

Parameter
NameDescription
options DatastoreOptions

Properties

auth

auth: GoogleAuth;
Property Value
TypeDescription
GoogleAuth

baseUrl_

baseUrl_?: string;
Property Value
TypeDescription
string

clients_

clients_: Map<string, ClientStub>;
Property Value
TypeDescription
Map<string, ClientStub>

customEndpoint_

customEndpoint_?: boolean;
Property Value
TypeDescription
boolean

DatastoreRequest

DatastoreRequest: typeof DatastoreRequest;

DatastoreRequest class.

Datastore.DatastoreRequest DatastoreRequest {constructor}

Property Value
TypeDescription
typeof DatastoreRequest

defaultBaseUrl_

defaultBaseUrl_: string;
Property Value
TypeDescription
string

KEY

KEY: typeof entity.KEY_SYMBOL;
Property Value
TypeDescription
typeof entity.KEY_SYMBOL

KEY

static KEY: typeof entity.KEY_SYMBOL;

Access the Key from an Entity object.

Datastore#KEY {symbol}

Property Value
TypeDescription
typeof entity.KEY_SYMBOL

MORE_RESULTS_AFTER_CURSOR

MORE_RESULTS_AFTER_CURSOR: string;
Property Value
TypeDescription
string

MORE_RESULTS_AFTER_CURSOR

static MORE_RESULTS_AFTER_CURSOR: string;

This is one of three values which may be returned from , , and as info.moreResults.

There *may* be more results after the specified end cursor.

{string}

Property Value
TypeDescription
string

MORE_RESULTS_AFTER_LIMIT

MORE_RESULTS_AFTER_LIMIT: string;
Property Value
TypeDescription
string

MORE_RESULTS_AFTER_LIMIT

static MORE_RESULTS_AFTER_LIMIT: string;

This is one of three values which may be returned from , , and as info.moreResults.

There *may* be more results after the specified limit.

{string}

Property Value
TypeDescription
string

namespace

namespace?: string;
Property Value
TypeDescription
string

NO_MORE_RESULTS

NO_MORE_RESULTS: string;
Property Value
TypeDescription
string

NO_MORE_RESULTS

static NO_MORE_RESULTS: string;

This is one of three values which may be returned from , , and as info.moreResults.

There are no more results left to query for.

{string}

Property Value
TypeDescription
string

options

options: DatastoreOptions;
Property Value
TypeDescription
DatastoreOptions

port_

port_?: number;
Property Value
TypeDescription
number

Query

Query: typeof Query;

Query class.

Datastore.Query Query {constructor}

Property Value
TypeDescription
typeof Query

Transaction

Transaction: typeof Transaction;

Transaction class.

Datastore.Transaction Transaction {constructor}

Property Value
TypeDescription
typeof Transaction

Methods

createQuery(kind)

createQuery(kind?: string): Query;
Parameter
NameDescription
kind string
Returns
TypeDescription
Query

createQuery(kind)

createQuery(kind?: string[]): Query;
Parameter
NameDescription
kind string[]
Returns
TypeDescription
Query

createQuery(namespace, kind)

createQuery(namespace: string, kind: string): Query;
Parameters
NameDescription
namespace string
kind string
Returns
TypeDescription
Query

createQuery(namespace, kind)

createQuery(namespace: string, kind: string[]): Query;
Parameters
NameDescription
namespace string
kind string[]
Returns
TypeDescription
Query

determineBaseUrl_(customApiEndpoint)

determineBaseUrl_(customApiEndpoint?: string): void;

Determine the appropriate endpoint to use for API requests. If not explicitly defined, check for the "DATASTORE_EMULATOR_HOST" environment variable, used to connect to a local Datastore server.

Parameter
NameDescription
customApiEndpoint string

Custom API endpoint.

Returns
TypeDescription
void

double(value)

double(value: number): entity.Double;
Parameter
NameDescription
value number
Returns
TypeDescription
entity.Double

double(value)

static double(value: number): entity.Double;

Helper function to get a Datastore Double object.

Parameter
NameDescription
value number

The double value.

Returns
TypeDescription
entity.Double

{object}

export(config)

export(config: ExportEntitiesConfig): Promise<LongRunningResponse>;
Parameter
NameDescription
config ExportEntitiesConfig
Returns
TypeDescription
Promise<LongRunningResponse>

export(config, callback)

export(config: ExportEntitiesConfig, callback: LongRunningCallback): void;
Parameters
NameDescription
config ExportEntitiesConfig
callback LongRunningCallback
Returns
TypeDescription
void

geoPoint(coordinates)

geoPoint(coordinates: entity.Coordinates): entity.GeoPoint;
Parameter
NameDescription
coordinates entity.Coordinates
Returns
TypeDescription
entity.GeoPoint

geoPoint(coordinates)

static geoPoint(coordinates: entity.Coordinates): entity.GeoPoint;

Helper function to get a Datastore Geo Point object.

Parameter
NameDescription
coordinates entity.Coordinates

Coordinate value.

Returns
TypeDescription
entity.GeoPoint

{object}

getIndexes(options)

getIndexes(options?: GetIndexesOptions): Promise<GetIndexesResponse>;
Parameter
NameDescription
options GetIndexesOptions
Returns
TypeDescription
Promise<GetIndexesResponse>

getIndexes(options, callback)

getIndexes(options: GetIndexesOptions, callback: GetIndexesCallback): void;
Parameters
NameDescription
options GetIndexesOptions
callback GetIndexesCallback
Returns
TypeDescription
void

getIndexes(callback)

getIndexes(callback: GetIndexesCallback): void;
Parameter
NameDescription
callback GetIndexesCallback
Returns
TypeDescription
void

getIndexesStream(options)

getIndexesStream(options?: GetIndexesOptions): NodeJS.ReadableStream;

Get all of the indexes in this project as a readable object stream.

Parameter
NameDescription
options GetIndexesOptions

Configuration object. See for a complete list of options.

Returns
TypeDescription
NodeJS.ReadableStream

{ReadableStream

getProjectId()

getProjectId(): Promise<string>;
Returns
TypeDescription
Promise<string>

import(config)

import(config: ImportEntitiesConfig): Promise<LongRunningResponse>;
Parameter
NameDescription
config ImportEntitiesConfig
Returns
TypeDescription
Promise<LongRunningResponse>

import(config, callback)

import(config: ImportEntitiesConfig, callback: LongRunningCallback): void;
Parameters
NameDescription
config ImportEntitiesConfig
callback LongRunningCallback
Returns
TypeDescription
void

index(id)

index(id: string): Index;

Get a reference to an Index.

Parameter
NameDescription
id string

The index name or id.

Returns
TypeDescription
Index

{Index}

insert(entities)

insert(entities: Entities): Promise<InsertResponse>;
Parameter
NameDescription
entities Entities
Returns
TypeDescription
Promise<InsertResponse>

insert(entities, callback)

insert(entities: Entities, callback: InsertCallback): void;
Parameters
NameDescription
entities Entities
callback InsertCallback
Returns
TypeDescription
void

int(value)

int(value: number | string): entity.Int;
Parameter
NameDescription
value number | string
Returns
TypeDescription
entity.Int

int(value)

static int(value: number | string): entity.Int;

Helper function to get a Datastore Integer object.

This is also useful when using an ID outside the bounds of a JavaScript Number object.

Parameter
NameDescription
value number | string

The integer value.

Returns
TypeDescription
entity.Int

{object}

isDouble(value)

isDouble(value?: {}): boolean;
Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

isDouble(value)

static isDouble(value?: {}): boolean;

Helper function to check if something is a Datastore Double object.

Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

{boolean}

isGeoPoint(value)

isGeoPoint(value?: {}): boolean;
Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

isGeoPoint(value)

static isGeoPoint(value?: {}): boolean;

Helper function to check if something is a Datastore Geo Point object.

Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

{boolean}

isInt(value)

isInt(value?: {}): boolean;
Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

isInt(value)

static isInt(value?: {}): boolean;

Helper function to check if something is a Datastore Integer object.

Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

{boolean}

isKey(value)

isKey(value?: {}): boolean;
Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

isKey(value)

static isKey(value?: {}): boolean;

Helper function to check if something is a Datastore Key object.

Parameter
NameDescription
value {}
Returns
TypeDescription
boolean

{boolean}

key(options)

key(options: entity.KeyOptions): entity.Key;
Parameter
NameDescription
options KeyOptions
Returns
TypeDescription
entity.Key

key(path)

key(path: PathType[]): entity.Key;
Parameter
NameDescription
path PathType[]
Returns
TypeDescription
entity.Key

key(path)

key(path: string): entity.Key;
Parameter
NameDescription
path string
Returns
TypeDescription
entity.Key

keyFromLegacyUrlsafe(key)

keyFromLegacyUrlsafe(key: string): entity.Key;

Helper to convert URL safe key string to entity key object

This is intended to work with the "legacy" representation of a datastore "Key" used within Google App Engine (a so-called "Reference").

Parameter
NameDescription
key string

Entity key object.

Returns
TypeDescription
entity.Key

{string} Created urlsafe key.

keyToLegacyUrlSafe(key, locationPrefix)

keyToLegacyUrlSafe(key: entity.Key, locationPrefix?: string): Promise<string>;
Parameters
NameDescription
key entity.Key
locationPrefix string
Returns
TypeDescription
Promise<string>

keyToLegacyUrlSafe(key, callback)

keyToLegacyUrlSafe(key: entity.Key, callback: KeyToLegacyUrlSafeCallback): void;
Parameters
NameDescription
key entity.Key
callback KeyToLegacyUrlSafeCallback
Returns
TypeDescription
void

keyToLegacyUrlSafe(key, locationPrefix, callback)

keyToLegacyUrlSafe(key: entity.Key, locationPrefix: string, callback: KeyToLegacyUrlSafeCallback): void;
Parameters
NameDescription
key entity.Key
locationPrefix string
callback KeyToLegacyUrlSafeCallback
Returns
TypeDescription
void

save(entities, gaxOptions)

save(entities: Entities, gaxOptions?: CallOptions): Promise<SaveResponse>;
Parameters
NameDescription
entities Entities
gaxOptions CallOptions
Returns
TypeDescription
Promise<SaveResponse>

save(entities, gaxOptions, callback)

save(entities: Entities, gaxOptions: CallOptions, callback: SaveCallback): void;
Parameters
NameDescription
entities Entities
gaxOptions CallOptions
callback SaveCallback
Returns
TypeDescription
void

save(entities, callback)

save(entities: Entities, callback: SaveCallback): void;
Parameters
NameDescription
entities Entities
callback SaveCallback
Returns
TypeDescription
void

transaction(options)

transaction(options?: TransactionOptions): Transaction;

Create a new Transaction object.

Parameter
NameDescription
options TransactionOptions

Configuration object.

Returns
TypeDescription
Transaction

{Transaction}

update(entities)

update(entities: Entities): Promise<UpdateResponse>;
Parameter
NameDescription
entities Entities
Returns
TypeDescription
Promise<UpdateResponse>

update(entities, callback)

update(entities: Entities, callback: UpdateCallback): void;
Parameters
NameDescription
entities Entities
callback UpdateCallback
Returns
TypeDescription
void

upsert(entities)

upsert(entities: Entities): Promise<UpsertResponse>;
Parameter
NameDescription
entities Entities
Returns
TypeDescription
Promise<UpsertResponse>

upsert(entities, callback)

upsert(entities: Entities, callback: UpsertCallback): void;
Parameters
NameDescription
entities Entities
callback UpsertCallback
Returns
TypeDescription
void