前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB操作MongoDB数据库

MATLAB操作MongoDB数据库

作者头像
万木逢春
发布2020-04-14 15:56:29
7850
发布2020-04-14 15:56:29
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab

自然语言处理中的分词结果,数字图像处理中的分割识别结果,它们通常有着不一样个数的单元,当我们需要逐个处理这些单元数据的时候如果全部导入MATLAB会占用大量内存,甚至卡死。

这里推荐使用MongoDB数据库来储存数据,前面的文章中介绍过MySQL数据库,适合于结构统一、形式一致的数据,不适合这里描述的情况。

MongoDB的安装是非常方便的,不用Google就可以找到详细安装步骤。安装完成后新建数据库、新建集合,就可以导入各种数据源,包括但不限于csv、json、xls...

数据成功导入之后就可以进入MATLAB环境中操作了,先安装MongoDB交互工具箱,可以点击Add-Ons搜索Database Toolbox interface for MongoDB后点击安装,也可以在这里下载:https://pan.baidu.com/s/1YZc6sEmZeU8FG59ypq7s8w 提取码:jb2n

安装好工具箱之后就可以操作MongoDb里面的数据了,这里举一个小栗子

代码语言:javascript
复制
server = "127.0.0.1";
port = 27017;
dbname = "mongo";
% 连接MongoDb
conn = mongo(server,port,dbname);
% 检查是否连接成功
isopen(conn)
collection = "qu";
sortquery = '{"_id":1.0}';
index = 0;
map = containers.Map;
word = "";
% 循环读取、逐个处理
while 1
    doc = find(conn,collection,'Sort',sortquery,'Skip',index,'Limit',1);
    index = index + 1;
    if isempty(doc)
        break;
    end
    % 可以是更复杂的操作
    for i=1:length(doc.tag)
        word = [word;doc.tag(i).word];
        if isKey(map,doc.tag(i).tag)
            map(doc.tag(i).tag)=map(doc.tag(i).tag)+1;
        else
            map(doc.tag(i).tag)=1;
        end
    end
    % pretend一些操作
    mongoquery = ['{"v":"' doc.v '"}'];
    documents = find(conn,collection,'Query',mongoquery)
    % 更新刚刚处理过的doc
    findquery = ['{"v":"' doc.v '"}'];
    updatequery = '{$set:{"treated":2}}';
    % 更新受影响的doc个数
    n = update(conn,collection,findquery,updatequery)
end
% 关闭连接
close(conn);
% 对出来结果进行展示

tags = keys(map);

plot(cell2mat(values(map)))

xticks(1:length(tags))

xticklabels(tags')

wordcloud(word)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档