Импорт и экспорт объектов MATLAB с помощью MongoDB

В этом примере показано, как экспортировать объекты из MATLAB® рабочая область в MongoDB® использование интерфейса Database Toolbox™ для MongoDB. Экспорт сериализует объекты в MongoDB. Затем в примере показано, как импортировать объекты обратно в рабочее пространство MATLAB. Импорт десериализует объекты и воссоздает их в MATLAB для выполнения метода. После экспорта и импорта в примере показано, как удалить набор.

Чтобы запустить этот пример, необходимо сначала установить интерфейс Database Toolbox для MongoDB. Для получения дополнительной информации смотрите Интерфейс Database Toolbox для установки MongoDB.

В этом примере объекты принадлежат TensileData класс. Этот класс является выборочным классом в MATLAB. Данные, используемые для создания объектов, являются выборочными данными. Для получения дополнительной информации смотрите Представление структурированных данных с классами. Чтобы запустить код в этом примере, задайте класс в текущей папке.

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

Создание объектов

Создайте TensileData объекты tdcs для материалов из углеродистой стали и tdss для материалов из нержавеющей стали.

tdcs = TensileData('carbon steel',1, ...
    [2e4 4e4 6e4 8e4],[.12 .20 .31 .40]);
tdss = TensileData('stainless steel',1, ...
    [2e4 4e4 6e4 8e4],[.06 .10 .16 .20]);

Подключение к MongoDB

Создайте соединение MongoDB с базой данных mongotest. Здесь сервер базы данных dbtb01 размещает эту базу данных с использованием номера порта 27017.

server = "dbtb01";
port = 27017;
dbname = "mongotest";
conn = mongo(server,port,dbname)
conn = 

  mongo with properties:

               Database: 'mongotest'
               UserName: ''
                 Server: {'dbtb01'}
                   Port: 27017
        CollectionNames: {'airlinesmall', 'employee', 'largedata' ... and 3 more}
         TotalDocuments: 23485919

conn является mongo объект, содержащий соединение MongoDB. Свойства объекта содержат информацию о подключении и базе данных.

  • Имя базы данных mongotest.

  • Имя пользователя пусто.

  • Сервер базы данных dbtb01.

  • Номер порта 27017.

  • Эта база данных содержит шесть наборов документов. Первые три имени набора airlinesmall, employee, и largedata.

  • Эта база данных содержит 23 485 919 документов.

Проверьте подключение MongoDB.

isopen(conn)
ans =

  logical

   1

Подключение к базе данных успешно, поскольку isopen функция возвращает 1. В противном случае соединение с базой данных закроется.

Создать набор в MongoDB

Создайте TensileData набор с использованием соединения MongoDB.

collection = "TensileData";
createCollection(conn,collection)

Экспорт объектов в MongoDB

Экспорт TensileData объекты в набор. insert функция сериализует TensileData объекты в структуру в стиле JSON. ntdcs и ntdss содержать количество объектов, экспортированных в набор.

ntdcs = insert(conn,collection,tdcs);
ntdss = insert(conn,collection,tdss);

Импортируйте объекты в рабочее пространство MATLAB

Импортируйте TensileData объекты в рабочее пространство MATLAB. find функция десериализует TensileData объекты в documents массив структур.

documents = find(conn,collection);

Воссоздайте объекты в рабочем пространстве MATLAB.

tdcs = TensileData(documents(1).Material,documents(1).SampleNumber, ...
    documents(1).Stress,documents(1).Strain);
tdss = TensileData(documents(2).Material,documents(2).SampleNumber, ...
    documents(2).Stress,documents(2).Strain);

Можно выполнять методы объектов после их появления в рабочем пространстве MATLAB.

Удаление документов и удаление набора

Удалите все документы из набора. n содержит количество документов, удаленных из набора.

n = remove(conn,collection,'{}')
n =

     2

Удалите набор.

dropCollection(conn,collection)

Закройте соединение MongoDB

close(conn)

См. также

| | | | | | |

Похожие темы

Внешние веб-сайты