Перейти к основному содержимому

MongoDB

Этот раздел посвящен библиотеке для работы с базами данных MongoDB в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы

Для реализации некоторых функции в этой библиотеке используется внешняя компонента
Пожалуйста, ознакомьтесь с разделом "О внешних компонентах" перед началом работы

Создание соединения

При использовании любых функций данной библиотеки, в качестве первого шага, необходимо инициализировать соединение с сервером MongoDB. Для этого используется строка подключения следующего вида:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

Данная строка может быть сформирована при помощи функции СформироватьСтрокуПодключения или быть получена из других источников. Далее, с ее помощью, соединение может быть инициализировано одним из следующих способов:

  • Явно Объект соединения может быть создан явно при помощи функции ОткрытьСоединение. Данный объект может быть использован многократно при вызове нескольких функций работы с MongoDB, а само соединение является активным до тех пор, пока объект существует, не была вызвана функция ЗакрытьСоединение или соединение не было закрыто по другим внешним причинам

  • Неявно Кроме передачи заранее созданного соединения, функции библиотеки также поддерживают передачу строки подключения в качестве параметра Соединение. При использовании такого подхода, соединение по указанной строке подключения будет автоматически создано внутри выполняемой функции и закрыто при ее завершении

При выполнении множественных последовательных запросов к серверу, рекомендуется использовать полноценное соединение, получаемое при помощи функции ОткрытьСоединение

Приведение типов

MongoDB использует JSON-подобный формат документов, однако с гораздо более широким набором типов данных. Некоторые из этих типов, при выполнении операций с внесением значений, могут быть приведены механизмами библиотеки автоматически, основываясь на типах значений в рамках 1С/OneScript. К таким типам относятся:

Тип 1СТип MongoDB (BSON)
СтрокаString
Число (без дробной части)Int64
Число (с дробной частью)Double
БулевоBoolean
ДатаDateTime
МассивArray
Структура, СоответствиеDocument
ДвоичныеДанныеBinary
НеопределеноNull

Кроме автоматического приведения, тип значения при передаче может быть также указан явно. Для этого передаваемое значение необходимо обернуть в структуру, где Ключ - идентификатор типа, а Значение - непосредственно передаваемое значение данных. Список поддерживаемых типов и их ключи представлены в таблице ниже:

Ключ структуры / объекта JSONТип MongoDB (BSON)
__OPI_STRING__String
__OPI_INT32__Int32
__OPI_INT64__Int64
__OPI_DOUBLE__Double
__OPI_BOOLEAN__Boolean
__OPI_DATETIME__DateTime
__OPI_TIMESTAMP__Timestamp
__OPI_OBJECTID__ObjectID
__OPI_REGEXP__RegularExpression
__OPI_JS__JavaScriptCode
__OPI_SYMBOL__Symbol
__OPI_MINKEY__MinKey
__OPI_MAXKEY__MaxKey
__OPI_NULL__Null
__OPI_BINARY__Binary

Передаваемые значения с типами Структура, Соответствие и Массив не требуют указания типа и всегда приводятся как Document и Array соответственно

Более подробный пример с приведением типов при внесении данных можно найти в описании функции ВставитьДокументы

Другие особенности

Для удобства работы, при разработке библиотеки также были заложены некоторые дополнительные особенности:

  • Так как ключи структур в 1С не могут содержать спец. символы, часто используемый символ $ может быть указан как __4
    // __4 = $
Выражение = Новый Структура("__4gte, __4lte", 100, 150); // $gte: 100, $lte: 150
Фильтр = Новый Структура("stringField,doubleField", "Текст", Выражение);
  • Данные типа Binary при получении данных из MongoDB возвращаются как структуры вида {"__B64_BINARY__": <Base64 строка значения>}

  • Данные типов MaxKey и MinKey при получении данных из MongoDB возвращаются как строки <<MaxKey>> и <<MinKey>> соответственно