Начало работы


Blank CLI


Blank Schema


Serverside JS API


HTTP API


Интеграция


$db

Модуль $db предназначен для манипуляции данными в хранилищах. Доступен везде, кроме загрузчиков виртуальных полей.

Параметры

Большинство методов принимают дополнительные параметры аргументом options, изменяющие стандартное поведение метода

{
      user: Object – пользователь, от имени которого выполняется метод. Будет произведена проверка прав на выполняемый метод
      userId: string – если не передан пользователь в параметре user, то будет произведён поиск пользователя в базе данных
      noCheckPermissions: bool – флаг отключения проверки прав на выполняемый метод
      noRunHooks: bool – флаг отключения запуска обработчиков жизненного цикла объекта
      noValidate: bool – флаг отключения валидации сохраняемых данных
      noEmitUpdate: bool – флаг отключения отправки уведомлений о производимых изменениях
      noPopulate: bool – флаг отключения популяции ref полей в возвращаемых данных
      noLoadVirtualProps: bool – флаг отключения загрузки виртуальных полей в возвращаемых данных
      drop: bool – только для метода delete, производит полное удаление объекта из хранилища
}

$db.delete()

Метод $db.delete() помечает объект как удалённый и переносит его из основного хранилища в хранилище удалённых объектов.

Синтаксис

$db.delete(store, _id[, options[, callback]])

Параметры

_id

Идентификатор объекта (строка)

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

callback

Функция, которая будет выполнена по завершению процесса удаления (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась.

$db.find()

Метод $db.find() производит поиск объектов в хранилище в соответствии с запросом.

Синтаксис

$db.find(store, query[, options[, callback]])

Параметры

query

Запрос к хранилищу (Javascript object).

Формат запроса:

    {
        query: {},
        skip: 0,
        take: 100,
        orderBy: "createdAt",
        currentId: "56370687-a1c8-4e04-9eb1-a755ca0de570",
        currentIndex: "",
        props: ["_id", "name"]
    }

Где

  • query — объект со значениями фильтра;

  • skip — смещение (int);

  • take — запрашиваемое количество объектов в выборке (int);

  • orderBy — поле, по которому требуется провести сортировку (строка, опционально). Если первый символом стоит -, то будет произведена обратная сортировка. Если параметр опущен, будет произведена сортировка по полю name;

  • currentId — идентификатор текущего элемента (строка, опционально). Если указан, то будет возвращён индекс текущего элемента в выборке (int), либо, если под условия поиска он не попадает, -1;

  • props — массив с идентификаторами полей, которые необходимо получить в выборке. Если параметр отсутствует, будут возвращены все поля.

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результат будет следующим:

    {
        items: [],
        fullCount: 100,
        currentItem: {},
        stateCounts: {
            new: 10,
            progress: 20
        }
    }

Где

  • items — массив объектов;

  • fullCount — общее количество объектов, попадающих под запрос;

  • currentIndex — индекс текущего элемента в выборке, или -1, если текущий элемент не попадает под условия выборки;

  • currentItem — текущий элемент, если попадает под условия выборки;

  • stateCounts — объектов со счетчиками состояний объектов в выборке.

$db.forEach()

Метод $db.forEach() производит итерацию объектов хранилища по одному объекту в соответствии с запросом.

Синтаксис

$db.forEach(store, query, options, itemCallback[, callback])
$db.forEach(store, query, itemCallback[, callback])

Параметры

query Запрос к хранилищу, аналогично методу $db.find()

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

itemCallback

Функция, которая будет выполнена для каждого найденного объекта. Получает на вход объект единственным аргументом. В случае, если функция вернёт Promise, $db.forEach() будет ожидать его выполнения перед следующей итерацией.

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась.

$db.get()

Метод $db.get() производит поиск одного объекта в указанном хранилище.

Синтаксис

$db.get(store, _id[, options[, callback]])
$db.get(store, query[, options[, callback]])

Параметры

_id

Идентификатор объекта (строка)

query

Запрос в формате MongoDB (Javascript Object)

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет искомый объект.

$db.getUser()

Метод $db.getUser() производит поиск пользователя по переданному _id.

Синтаксис

$db.getUser(_id[, callback])

Параметры

_id

Идентификатор пользователя (строка)

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет искомый пользователь.

$db.insert()

Метод $db.insert() производит вставку нового объект в указанном хранилище. При этом для объекта будет сгенерирован новый _id.

Синтаксис

$db.insert(store, item[, options[, callback]])

Параметры

item

Новый объект (Javascript Object)

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет новый объект в том виде, в каком был сохранён в базу данных.

$db.loadVirtualProps()

Метод $db.loadVirtualProps() производит загрузку виртуальных полей в переданный объект.

Синтаксис

$db.loadVirtualProps(store, item)

Параметры

item

Объект для загрузки виртуальных полей (Javascript Object)

store

Идентификатор хранилища (строка).

Возвращаемые значения

Объект с загруженными виртуальными полями

$db.newId()

Метод $db.newId() генерирует новый UUID v4.

Синтаксис

$db.newId()

Возвращаемые значения

Новый UUID v4

$db.nextSequence()

Метод $db.nextSequence() возвращает следующее автоинкрементное значение для хранилища.

Синтаксис

$db.nextSequence(store[, callback])

Параметры

store

Идентификатор хранилища (строка).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет значение в формате int.

$db.nextSequenceString()

Метод $db.nextSequenceString() возвращает следующее автоинкрементное значение для хранилища в виде строки с числом определённой разрядности.

Синтаксис

$db.nextSequenceString(store[, digits[, callback]])

Параметры

store

Идентификатор хранилища (строка).

digits

Количество разрядов в возвращаемой строке (число, опционально). По умолчанию будет сгенерировано 6 разрядов.

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет значение в формате string.

$db.notify()

Метод $db.notify() отправляет указанным пользователям сообщение в центр уведомлений.

Синтаксис

$db.notify(store, receivers, message[, callback])

Параметры

receivers

Идентификаторы получателей (строка, если получатель один или массив строк, если получателей несколько).

store

Идентификатор хранилища (строка).

message

Сообщение (строка или объект). Объект имеет следующую структуру:

{
	message: "Заголовок сообщения",
	details: "Текст сообщения",
	level: "info", // info | error // currently only info supports (default)
	type: "notification", // currently only notification supports (default)
	relatedObjects: [
		{
			name: "Gray Wolf",
			_id: "9bb8147f-7bd2-402f-a62d-e67af9ddd246",
			mode: "link",
			store: "feedback"
		}
	]
}

Где relatedObjects - массив объектов, которые будут приложены к уведомлению ссылками. В случае, если сообщение передано строкой, строка будет помещена в свойство message.

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась.

$db.populateAll()

Метод $db.populateAll() производит популяцию полей с типом ref в переданном объекте.

Синтаксис

$db.populateAll(store, item[, callback])

Параметры

item

Объект для выполнения популяции полей (Javascript Object)

store

Идентификатор хранилища (строка).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет объект с популированными полями.

$db.set()

Метод $db.set() производит сохранение переданного объекта в указанное храниоище.

Синтаксис

$db.set(store, item[, options[, callback]])

Параметры

item

Объект сохранения (Javascript Object). В случае, если объект с указанным _id уже имеется в базе, перечисленные в объекте поля будут наложены на существующий объект. Для удаления полей, следует в значении указывать null.

store

Идентификатор хранилища (строка).

options

Дополнительные параметры (Javascript Object, опционально).

callback

Функция, которая будет выполнена по завершению метода (опционально).

Возвращаемые значения

null в случае переданной функции callback или Promise, если функция не передавалась. В случае успешного выполнения метода, результатом будет объект в том виде, в каком был сохранён в базу данных.

$db.waitForConnection()

// To be continue…