Class Query

Build a Query object.

Queries are built with {module:datastore#createQuery} and createQuery.

See

Datastore Queries

Param

The parent scope the query was created from.

Param

Namespace to query entities from.

Param

Kind to query.

Example

const {Datastore} = require('@google-cloud/datastore');
const datastore = new Datastore();
const query = datastore.createQuery('AnimalNamespace', 'Lion');

Hierarchy

  • Query

Constructors

  • Parameters

    Returns Query

  • Parameters

    Returns Query

Properties

endVal: null | string | Buffer
filters: Filter[]
groupByVal: {}[]

Type declaration

    kinds: string[]
    limitVal: number
    namespace?: null | string
    offsetVal: number
    orders: Order[]
    selectVal: {}[]

    Type declaration

      startVal: null | string | Buffer

      Methods

      • Set an ending cursor to a query.

        Parameters

        • end: string | Buffer

        Returns Query

        See

        Query Cursors

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        const cursorToken = 'X';

        // Retrieve results limited to the extent of cursorToken.
        const endQuery = companyQuery.end(cursorToken);
      • Datastore allows querying on properties. Supported comparison operators are =, <, >, <=, >=, !=, HAS_ANCESTOR, IN and NOT_IN.

        To filter by ancestors, see {module:datastore/query#hasAncestor}.

        Parameters

        • property: string

          The field name.

        • value: null | {}

          Value to compare property to.

        Returns Query

        See

        Datastore Filters

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const query = datastore.createQuery('Company');

        //-
        // List all companies that are located in California.
        //-
        const caliQuery = query.filter('state', 'CA');

        //-
        // List all companies named Google that have less than 400 employees.
        //-
        const companyQuery = query
        .filter('name', 'Google')
        .filter('size', '<', 400);

        //-
        // To filter by key, use `__key__` for the property name. Filter on keys
        // stored as properties is not currently supported.
        //-
        const key = datastore.key(['Company', 'Google']);
        const keyQuery = query.filter('__key__', key);
      • Parameters

        • property: string
        • operator: Operator
        • value: null | {}

        Returns Query

      • Group query results by a list of properties.

        Parameters

        • fieldNames: string | string[]

        Returns Query

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');
        const groupedQuery = companyQuery.groupBy(['name', 'size']);
      • Filter a query by ancestors.

        Parameters

        • key: Key

          Key object to filter by.

        Returns Query

        See

        Datastore Ancestor Filters

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const query = datastore.createQuery('MyKind');
        const ancestoryQuery = query.hasAncestor(datastore.key(['Parent', 123]));
      • Set a limit on a query.

        Parameters

        • n: number

          The number of results to limit the query to.

        Returns Query

        See

        Query Limits

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        // Limit the results to 10 entities.
        const limitQuery = companyQuery.limit(10);
      • Set an offset on a query.

        Parameters

        • n: number

          The offset to start from after the start cursor.

        Returns Query

        See

        Query Offsets

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        // Start from the 101st result.
        const offsetQuery = companyQuery.offset(100);
      • Sort the results by a property name in ascending or descending order. By default, an ascending sort order will be used.

        Parameters

        • property: string

          The property to order by.

        • Optional options: OrderOptions

          Options object.

        Returns Query

        See

        Datastore Sort Orders

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        // Sort by size ascendingly.
        const companiesAscending = companyQuery.order('size');

        // Sort by size descendingly.
        const companiesDescending = companyQuery.order('size', {
        descending: true
        });
      • Run the query.

        Parameters

        • Optional options: RunQueryOptions

          Optional configuration.

        Returns Promise<RunQueryResponse>

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const query = datastore.createQuery('Company');

        query.run((err, entities, info) => {
        // entities = An array of records.

        // Access the Key object for an entity.
        const firstEntityKey = entities[0][datastore.KEY];
        });

        //-
        // A keys-only query returns just the keys of the result entities instead
        of
        // the entities themselves, at lower latency and cost.
        //-
        query.select('__key__');

        query.run((err, entities) => {
        const keys = entities.map((entity) => {
        return entity[datastore.KEY];
        });
        });

        //-
        // If the callback is omitted, we'll return a Promise.
        //-
        query.run().then((data) => {
        const entities = data[0];
        });
      • Parameters

        • options: RunQueryOptions
        • callback: RunQueryCallback

        Returns void

      • Parameters

        • callback: RunQueryCallback

        Returns void

      • Run the query as a readable object stream.

        Parameters

        • Optional options: RunQueryOptions

          Optional configuration. See run for a complete list of options.

        Returns Transform

        Method

        Query#runStream

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const query = datastore.createQuery('Company');

        query.runStream()
        .on('error', console.error)
        .on('data', function (entity) {
        // Access the Key object for this entity.
        const key = entity[datastore.KEY];
        })
        .on('info', (info) => {})
        .on('end', () => {
        // All entities retrieved.
        });

        //-
        // If you anticipate many results, you can end a stream early to prevent
        // unnecessary processing and API requests.
        //-
        query.runStream()
        .on('data', function (entity) {
        this.end();
        });
      • Retrieve only select properties from the matched entities.

        Queries that select a subset of properties are called Projection Queries.

        Parameters

        • fieldNames: string | string[]

          Properties to return from the matched entities.

        Returns Query

        See

        Projection Queries

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        // Only retrieve the name property.
        const selectQuery = companyQuery.select('name');

        // Only retrieve the name and size properties.
        const selectQuery = companyQuery.select(['name', 'size']);
      • Set a starting cursor to a query.

        Parameters

        • start: string | Buffer

        Returns Query

        See

        Query Cursors

        Example

        const {Datastore} = require('@google-cloud/datastore');
        const datastore = new Datastore();
        const companyQuery = datastore.createQuery('Company');

        const cursorToken = 'X';

        // Retrieve results starting from cursorToken.
        const startQuery = companyQuery.start(cursorToken);

      Generated using TypeDoc