Matlab通过Java驱动程序从MongoDB集合中删除所有文档

时间:2014-08-29 09:39:24

标签: java matlab mongodb

我正在通过java驱动程序为单元测试编写mongodb集合的清理例程(我尝试了“本机”matlab驱动程序,但文档很简陋)。

我可以得到一个连接(至少我认为我可以),但我坚持在DBCollection对象上调用remove方法。

我正在运行以下代码:

javaaddpath(pathToJarFile)

import com.mongodb.*;

mongoClient = MongoClient(mHost);
mongoConn = mongoClient.getDB(dbName);
auth = mongoConn.authenticate(user,password);

events = mongoConn.getCollection('events');

events.remove();

在最后一行我收到错误

  

找不到类'com.mongodb.DBCollectionImpl'匹配签名的方法'remove'。

因为我知道DBCollection类存在'删除'方法,所以我现在有点不知所措。

任何帮助将不胜感激。请注意,就OOP而言,我基本上是文盲:-S


修改

请注意我也试过

events.remove({});

导致相同的错误消息。

2 个答案:

答案 0 :(得分:1)

根据API documentation of DBCollection.remove,您必须提供仅指定删除条件的DBObject。它还说要传递一个空文档来删除集合中的所有文档。至少你必须提供一个参数。

根据有关如何remove all documents from a collection的文档,您只需将指示空文档的参数{}传递给该方法。所以你必须致电

events.remove( {} );

在评论中回答您的问题:参数必须是描述删除条件的DBObject游标不是这样的文档。

答案 1 :(得分:0)

似乎MATLAB没有正确传递{},因此创建一个空文档并将其传递给remove确实有效。

工作代码如下所示:

javaaddpath(pathToJarFile)

import com.mongodb.*;

mongoClient = MongoClient(mHost);
mongoConn = mongoClient.getDB(dbName);
auth = mongoConn.authenticate(user,password);

events = mongoConn.getCollection('events');

empty = BasicDBObject();
events.remove(empty);