Общее о структуре таблиц в MongoDB
В настоящем разделе приведены описания структур объектов, хранящихся в базе данных MongoDB на платформе CyberWay. Рассмотрены структуры наиболее часто используемых объектов приложения Голос.
Приведенные примеры структур объектов получены с использованием shell-команд вида:
База данных MongoDB
В отличие от реляционных баз данных в MongoDB отсутствуют таблицы с заданным количеством столбцов и типами данных. MongoDB в блокчейне CyberWay содержит несколько отдельных баз данных. Имя каждой базы данных состоит из префикса и имени аккаунта, на котором загружен контракт. Префикс задается в параметре chaindb_sys_name
во время запуска nodeos
. Например, указав в параметре префикс CYBERWAY
для контракта cyber.token
, загруженного на аккаунт cyber.token
имя базы данных будет _CYBERWAY_cyber_token_
.
База данных MongoDB является документо-ориентированной и состоит из набора коллекций. Каждая коллекция содержит набор документов и имеет свой алфавитно-цифровой идентификатор, размер которого ограничен 128 символами.
Документы, содержащие в одной и той же коллекции, могут быть разного типа и представлять собой структуры с полями данных в формате JSON.
Типовые объекты в документах
Все документы коллекций содержат свой идентификатор и объект _SERVICE_
. Кроме этого в документах могут содержаться объекты с типовой конструкцией (например, объект типа asset
). Описание полей таких объектов в параметрах документов опускается.
Структура документов имеет следующий вид:
_id
Идентификатор документа (objectId) _id
создается во время записи документа в БД и состоит из алфавитно-цифровых символов (например, "5cadb0b8cda6a371d236fe9c").
_SERVICE_
В конце документов находится объект _SERVICE_
, в котором хранится служебная информация, в том числе:
scope
— область видимости (действия) документа. Параметр определяет область в системе, в рамках которой описываемая в документе сущность является актуальной. Например, токены, созданные аккаунтом, могут быть ликвидными только в рамках одного приложения;rev
— номер ревизии, увеличивается с каждым изменением документа;payer
— имя аккаунта, который оплачивает используемую память для хранения документа;size
— объем занимаемый документом памяти (в байтах).
asset
Для описания токенов в документах используется объект типа asset
, содержащий в БД следующие поля:
amount
— количество токенов;decs
— поле, задающее точность стоимости токена в виде количества знаков после запятой;sym
— символ токена, состоящий из набора прописных букв.
Last updated