此示例显示如何从MongoDB导入大量的航班数据®收集到matlab中®使用MongoDB的Database Toolbox™接口的工作区。要避免与Java一起忘记问题®堆检索许多文档时,使用循环以批量导入大数据。
要运行此示例,您必须首先安装MongoDB的数据库工具箱界面。有关详细信息,请参阅MongoDB安装的数据库工具箱界面。
创建与数据库的MongoDB连接蒙古兹
。这里,数据库服务器DBTB01.
使用端口号托管此数据库27017
。
服务器=“dbtb01”;端口= 27017;dbname =“蒙古斯特”;conn = mongo(服务器,端口,dbname)
Conn = Mongo with属性:数据库:'Mongotest'用户名:'''''''''''''s's:{'dbtb01'}港口:27017 CollectionNames:{Airlinesmall','员工','Larralata'...和3更多} TotalDocuments:23485919
骗子
是蒙古
包含MongoDB连接的对象。对象属性包含有关连接和数据库的信息。
数据库名称是蒙古兹
。
用户名是空白的。
数据库服务器是DBTB01.
。
端口号是27017
。
此数据库包含六个文档集合。前三个收集名称是Airlinesmall.
那员工
, 和laredata
。
该数据库包含23,485,919件文件。
验证MongoDB连接。
isopen(康涅狄格州)
ans =逻辑1
原因2:数据库连接成功开了
函数返回1
。否则,数据库连接已关闭。
找到文件总数总数
在里面Airlinesmall.
收集1997年至2010年。使用MongoDB查询来过滤指定年份的航班数据。
集合=“Airlinesmall”;mongoquery ='{“一年”:{$ GTE:1997,$ LTE:2010}}';TotalDocs = Count(Conn,Collection,'询问',Mongoquery);
估计批量为15000份文件。定义用于存储检索数据的MATLAB工作区变量。
Batchsize = 15000;flightdata = [];
您可以根据系统的性能和内存容量来更改批处理大小。
用一个尽管
循环从集合中检索飞行数据。变量飞行
累积每批检索数据。
读取文件的%曲目数索引= 0;尽管索引%以批量检索文档localdata = find(conn,collection,'询问',mongoquery,......“跳过”,指数,'限制', batchsize);%存储在本地检索的文档flightdata = [flightdata;localData];%移动到下一个批处理index = index + batchsize;结尾
显示有关的信息飞行
多变的。检索到的数据是包含75,603个结构的结构阵列。每个结构包含30个飞行数据字段。
谁是飞行
名称大小字节类属性flightdata 75603x1 285102752 struct
关闭(Conn)