# Class: Query

# Hierarchy

# Constructors

# constructor

+ new Query(conditions: IConditionExpr, collection: string): Query

Overrides BaseQuery.constructor

summary Create an instance of Query.

name Query

example

 const query = new Query({$select: [{$field: 'address'}], $where: {$nill: [{ address: { $like: '%57-59%' } }, { free_breakfast: true }, { free_lunch: [1] }]}}, 'travel-sample');

Parameters:

Name Type Description
conditions IConditionExpr List of SELECT clause conditions
collection string Collection name

Returns: Query

Query

# Properties

# Protected _collection

_collection: string

Inherited from BaseQuery._collection


# Protected _conditions

_conditions: IConditionExpr

Inherited from BaseQuery._conditions

# Accessors

# collection

get collection(): string

Returns: string

set collection(value: string): void

Parameters:

Name Type
value string

Returns: void


# conditions

get conditions(): IConditionExpr

Returns: IConditionExpr

set conditions(value: IConditionExpr): void

Parameters:

Name Type
value IConditionExpr

Returns: void

# Methods

# build

build(): string

Overrides BaseQuery.build

Build a n1ql query from the defined parameters.

method

Returns: string


# compileFromConditions

compileFromConditions(conditionals: IConditionExpr): void

Converts the conditional parameters passed to the constructor to the properties of the N1QL Query.

method

Parameters:

Name Type
conditionals IConditionExpr

Returns: void


# groupBy

groupBy(value: IGroupBy[]): Query

Add GROUP BY expression to GROUP BY clause.

method

example

  const groupByExpr = [{ expr: 'COUNT(amount_val)', as: 'amount' }];
  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).groupBy(groupByExpr).build()
  console.log(result)

SELECT address FROM travel-sample GROUP BY COUNT(amount) AS amount

Parameters:

Name Type
value IGroupBy[]

Returns: Query


# having

having(value: LogicalWhereExpr): Query

Add HAVING expression to GROUP BY clause.

method

example

  const groupByExpr = [{ expr: 'COUNT(amount_val)', as: 'amount' }];
  const having = {address: {$like: '%58%'}};
  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).groupBy(groupByExpr).having(having).build()
  console.log(result)

SELECT address FROM travel-sample GROUP BY COUNT(amount) AS amount HAVING address LIKE '%58%'

Parameters:

Name Type
value LogicalWhereExpr

Returns: Query


# index

index(type: IndexType, name: string): Query

Add index type and name to INDEX clause.

method

example

  const result = new Query({}, 'travel-sample').index('DROP', 'travel_sample_id_test').build();
  console.log(result)

DROP INDEX travel-sample.travel_sample_id_test

Parameters:

Name Type
type IndexType
name string

Returns: Query


# let

let(value: ILetExpr[]): Query

Overrides BaseQuery.let

Add LET expression to SELECT clause.

method

example

  const letExpr = [{ key: 'amount_val', value: 10 }];
  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).let(letExpr).build()
  console.log(result)

SELECT address FROM travel-sample LET amount_val = 10

Parameters:

Name Type
value ILetExpr[]

Returns: Query


# letting

letting(value: ILetExpr[]): Query

Add LETTING expression to GROUP BY clause.

method

example

  const groupByExpr = [{ expr: 'COUNT(amount_val)', as: 'amount' }];
  const letExpr = [{ key: 'amount_val', value: 10 }];
  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).groupBy(groupByExpr).let(letExpr).build()
  console.log(result)

SELECT address FROM travel-sample GROUP BY COUNT(amount) AS amount LETTING amount = 10

Parameters:

Name Type
value ILetExpr[]

Returns: Query


# limit

limit(value: number): Query

Overrides BaseQuery.limit

Add LIMIT expression to SELECT clause.

method

example

  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).limit(10).build()
  console.log(result)

SELECT address FROM travel-sample LIMIT 10

Parameters:

Name Type
value number

Returns: Query


# offset

offset(value: number): Query

Overrides BaseQuery.offset

Add OFFSET expression to SELECT clause.

method

example

  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).offset(10).build()
  console.log(result)

SELECT address FROM travel-sample OFFSET 10

Parameters:

Name Type
value number

Returns: Query


# on

on(value: IIndexOnParams[]): Query

Add items to ON clause in INDEX clause.

method

example

  const on = [{ name: 'travel-sample.callsing', sort: 'ASC' }];
  const result = new Query({}, 'travel-sample').index('CREATE', 'travel_sample_id_test').on(on).build();
  console.log(result)

CREATE INDEX travel_sample_id_test ON travel-sample(travel-sample.callsing['ASC'])

Parameters:

Name Type
value IIndexOnParams[]

Returns: Query


# orderBy

orderBy(value: Record‹string, SortType›): Query

Overrides BaseQuery.orderBy

Add ORDER BY expression to SELECT clause.

method

example

  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).orderBy({ size: 'DESC' }).build()
  console.log(result)

SELECT address FROM travel-sample ORDER BY size = 'DESC'

Parameters:

Name Type
value Record‹string, SortType

Returns: Query


# plainJoin

plainJoin(value: string): Query

Add JOIN expression to SELECT clause.

method

example

  const query = new Query({}, 'beer-sample brewery');
  const result = query.select([{$field: 'address'}]).plainJoin('JOIN `beer-sample` beer ON beer.brewery_id = LOWER(REPLACE(brewery.name, " ", "_"))').build()
  console.log(result)

SELECT address FROM beer-sample brewery JOIN beer-sample beer ON beer.brewery_id = LOWER(REPLACE(brewery.name, " ", "_")) LIMIT 1`

Parameters:

Name Type
value string

Returns: Query


# select

select(value?: ISelectType[] | string | undefined): Query

Overrides BaseQuery.select

Add result selectors to SELECT clause.

method

example

  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).build()
  console.log(result)

SELECT address FROM travel-sample

Parameters:

Name Type
value? ISelectType[] | string | undefined

Returns: Query


# useKeys

useKeys(value: string[]): Query

Overrides BaseQuery.useKeys

Add USE KEYS expression to SELECT clause.

method

example

  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).useKeys(['airlineR_8093']).build()
  console.log(result)

SELECT address FROM travel-sample USE KEYS ['airlineR_8093']

Parameters:

Name Type
value string[]

Returns: Query


# usingGSI

usingGSI(): Query

Create INDEX using General Secondary Index(GSI).

method

example

  const result = new Query({}, 'travel-sample').index('CREATE', 'travel_sample_id_test').usingGSI().build();
  console.log(result)

CREATE INDEX travel_sample_id_test USING GSI)

Returns: Query


# where

where(value: LogicalWhereExpr): Query

Overrides BaseQuery.where

Add WHERE expression to SELECT clause.

method

example

  const expr_where = {$or: [{ address: { $like: '%57-59%' } }, { free_breakfast: true }]};
  const query = new Query({}, 'travel-sample');
  const result = query.select([{$field: 'address'}]).where(expr_where).build()
  console.log(result)

SELECT address FROM travel-sample WHERE (address LIKE '%57-59%' OR free_breakfast = true)

Parameters:

Name Type
value LogicalWhereExpr

Returns: Query


# with

with(value: IIndexWithParams): Query

Add items to WITH clause in INDEX clause.

method

example

  const withExpr = {nodes: ['192.168.1.1:8078'],defer_build: true,num_replica: 2};
  const result = new Query({}, 'travel-sample').index('CREATE', 'travel_sample_id_test').with(withExpr).build();
  console.log(result)

CREATE INDEX travel_sample_id_test WITH {'nodes': ['192.168.1.1:8078'],'defer_build': true,'num_replica': 2})

Parameters:

Name Type
value IIndexWithParams

Returns: Query