Модуль $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…