java - 通过 java 驱动程序将数据从 MongoDB 转换为原生 MATLAB 格式

标签 java matlab mongodb

我正在尝试通过 java 驱动程序将集合中的所有文档导入 MATLAB,但我似乎缺少某些东西。我在网上进行了广泛的搜索,但找不到可行的解决方案。

我在 mongodb 文档中的数据是混合的,它由数字和字符串组成,因此将每个文档转换为 MATLAB 中的结构是有利的。我可能会为每个文档的每个字段运行一个循环并像那样解析数据,但我认为此解决方案可能会占用相当大的性能空间。

到目前为止,这是我的代码:

import com.mongodb.*;

events = mongoConn.getCollection('events');
cursor = events.find();
list = cursor.toArray();

此时,list 是一个 java.util.ArrayList,这就是我卡住的地方。有没有办法将其塑造成一个结构?我在网上可以找到的所有信息都在谈论一种单一数据类型的数组。感谢您的帮助。

最佳答案

循环遍历所有文档的游标的解决方案结果相当不错。如果有人遇到同样的麻烦,我会在这里发布以供引用。然而,我认为这是一个相当丑陋的黑客攻击,我强烈怀疑如果应用于大型数据集,它的扩展性会很差,因此请谨慎使用。如果有人有更优雅的解决方案,我仍然有兴趣看到它(已接受的答案仍在争夺中)。 ;-)

% // get handle to event collection
events = mongoConn.getCollection('events');

% // get cursor with all event documents
cursor = events.find();

% // parse events
n = 1;
while cursor.hasNext()
    event(n).bolus_id   = cursor.next().get('bolus_id');
    event(n).timestamp  = cursor.curr().get('timestamp');
    event(n).typ        = cursor.curr().get('type');
    event(n).title      = cursor.curr().get('title');
    event(n).value      = cursor.curr().get('value');
    event(n).sta        = cursor.curr().get('start');
    event(n).end        = cursor.curr().get('end');
    n = n + 1;
end

cursor.close();

关于java - 通过 java 驱动程序将数据从 MongoDB 转换为原生 MATLAB 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25606877/

相关文章:

events - MATLAB 事件和无限休眠或检查循环

matlab - 在 Matlab 中对数组结构进行排序

mongodb - 过滤$lookup结果

bash - 从 bash 脚本运行 mongo 命令

java - 达到警告时 Intellij 条件始终为 false

java - 如何使用查询对象比较 Spring Data MongoDB 中的 2 个字段

matlab - 计算与Matlab中三个特定点距离相等的点

mongodb - 如何列出 MongoDB shell 中的所有集合?

java - 自定义构建注释的使用者在我的源代码中位于哪里?

java - Tomcat 无法定位 TreeTagger 二进制文件