当前位置:  开发笔记 > 编程语言 > 正文

从MATLAB连接到MongoDB

如何解决《从MATLAB连接到MongoDB》经验,为你挑选了1个好方法。

我正在尝试将MongoDB与MATLAB 一起使用.虽然MATLAB 没有支持的驱动程序,但有一个用于Java.幸运的是,我能够使用它连接到db等.我下载了最新的(2.1)版本的jar文件并使用JAVAADDPATH安装它.然后我尝试按照Java教程.

这是代码

javaaddpath('c:\MATLAB\myJavaClasses\mongo-2.1.jar')

import com.mongodb.Mongo;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;

m = Mongo(); % connect to local db
db = m.getDB('test'); % get db object
colls = db.getCollectionNames(); % get collection names
coll = db.getCollection('things'); % get DBCollection object

doc = BasicDBObject();
doc.put('name', 'MongoDB');
doc.put('type', 'database');
doc.put('count', 1);
info = BasicDBObject();
info.put('x', 203);
info.put('y', 102);
doc.put('info', info);
coll.insert(doc);

这是我堆积的地方.coll应该是DBCollection对象,但实际上是com.mongodb.DBApiLayer$MyCollection类的对象.所以最后一个命令返回错误:

??? 没有为类'com.mongodb.DBApiLayer $ MyCollection'找到匹配签名的方法'insert'.

在本教程中,coll变量显式创建为DBCollection对象:

DBCollection coll = db.getCollection("testCollection")

我在MATLAB中做错了什么?有任何想法吗?

关于colls变量的另一个小问题.它是com.mongodb.util.OrderedSet类,包含db中所有集合的名称列表.我怎么能把它转换成MATLAB的单元格数组?


更新:除了Amro的答案,这也有效:

wc = com.mongodb.WriteConcern();
coll.insert(doc,wc)

Amro.. 10

快速检查:

methodsview(coll)        %# or: methods(coll, '-full')

表明它需要一个数组:

com.mongodb.WriteResult  insert(com.mongodb.DBObject[])

试试这个:

doc(1) = BasicDBObject();
doc(1).put('name', 'MongoDB');
doc(1).put('type', 'database');
...
coll.insert(doc);

注意:如果您在MATLAB中使用Java,我建议您使用Yair Altman的CheckClass和UIInspect实用程序



1> Amro..:

快速检查:

methodsview(coll)        %# or: methods(coll, '-full')

表明它需要一个数组:

com.mongodb.WriteResult  insert(com.mongodb.DBObject[])

试试这个:

doc(1) = BasicDBObject();
doc(1).put('name', 'MongoDB');
doc(1).put('type', 'database');
...
coll.insert(doc);

注意:如果您在MATLAB中使用Java,我建议您使用Yair Altman的CheckClass和UIInspect实用程序

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有