Я пытаюсь использовать MongoDB с MATLAB. Хотя не поддерживается поддерживаемый драйвер для MATLAB, он есть для Java. К счастью, я смог использовать его для подключения к БД и т. Д.
Я скачал последнюю (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
класса. Поэтому последняя команда возвращает ошибку:
??? Не найдено метода «insert» с соответствующей подписью для класса «com.mongodb.DBApiLayer $ MyCollection».
В учебнике переменная coll
создается явно как объект DBCollection:
DBCollection coll = db.getCollection("testCollection")
Я что-то не так делаю в MATLAB? Есть идеи?
Еще один незначительный вопрос о colls
переменной. Это com.mongodb.util.OrderedSet
класс и содержит список имен всех коллекций в БД. Как я могу преобразовать его в массив ячеек MATLAB?
Обновление : В дополнение к ответ Амро это также работает:
wc = com.mongodb.WriteConcern();
coll.insert(doc,wc)