主要内容

导入大数据MongoDB

这个例子展示了如何从MongoDB导入大量的飞行数据®集合到MATLAB中®工作区使用MongoDB的Database Toolbox™接口。避免Java的内存不足问题®堆检索许多文档时,使用循环批量导入大数据。

要运行这个示例,您必须首先为MongoDB安装数据库工具箱接口。有关详细信息,请参见安装MongoDB的数据库工具箱接口

连接到MongoDB

创建到数据库的MongoDB连接mongotest.这里是数据库服务器dbtb01使用端口号托管该数据库27017

服务器=“dbtb01”;端口= 27017;dbname =“mongotest”;康涅狄格州= mongo(服务器、端口dbname)
conn = mongo with properties: Database: 'mongotest' UserName: " Server: {'dbtb01'} Port: 27017 CollectionNames: {' airlinesal ', 'employee', 'largedata'…and 3 more} TotalDocuments: 23485919

康涅狄格州蒙戈包含MongoDB连接的对象。对象属性包含有关连接和数据库的信息。

  • 数据库名称为mongotest

  • 用户名为空。

  • 数据库服务器为dbtb01

  • 端口号为27017

  • 这个数据库包含六个文档集合。前三个集合名是airlinesmall员工,largedata

  • 这个数据库包含23,485,919个文档。

检查MongoDB连接。

isopen(康涅狄格州)
逻辑1

数据库连接成功,因为isopen函数返回1.否则,数据库连接将关闭。

确定要导入的文档数量

找到文档的总数totaldocsairlinesmall1997年到2010年的收藏。使用MongoDB查询过滤指定年份的航班数据。

收集=“airlinesmall”;mongoquery =”{"年":{gte: 1997美元,美元lte: 2010}}”;totaldocs = count(康涅狄格州、收集、“查询”, mongoquery);

批量检索大数据

估计批大小为15,000个文档。定义用于存储检索数据的MATLAB工作区变量。

batchsize = 15000;flightdata = [];

您可以根据系统的性能和内存容量更改批大小。

使用一个循环从集合中检索飞行数据。的变量flightdata累积每批检索的数据。

%跟踪读取的文档数指数= 0;指数< totaldocs批量检索文档localdata =找到(康涅狄格州、收集、“查询”mongoquery,...“跳过”、索引“限制”, batchsize);在本地存储检索到的文档flightdata = [flightdata;localdata];%移动到下一批Index = Index + batchsize;结束

显示flightdata变量。检索到的数据是一个包含75,603个结构的结构数组。每个结构包含30个飞行数据字段。

flightdata
名称大小字节类属性flightdata 75603x1 285102752 struct

关闭MongoDB连接

关上(康涅狄格州)

另请参阅

|||||

相关的话题

外部网站