MongoDB,Java:访问游标打开无法关闭的连接

时间:2014-04-06 16:40:02

标签: java mongodb connection

我在关闭访问MongoDB游标后始终创建的连接时遇到问题。

我正在从正在运行的mongod实例的控制台收集有关连接的信息。我还没有使用任何mongodb复制,也没有使用分片。

例如,导致打开连接的示例代码(假设'myQuery'只是一些查询,coll使用setInternalClass映射到类MyObject):

  DBCursor find = coll.find(myQuery);
  List<MyObject> myObjects = new ArrayList<MyObject>();
  while(find.hasNext()) { // this line opens the connection
        MyObject next = (MyObject) find.next();
        myObjects.add(next);
  }
  find.close(); // this line will not close the connection

1 个答案:

答案 0 :(得分:0)

您在查找对象上调用close,这是一个DBCursor。如API Documentation中所述,这将仅关闭游标,而不关闭底层连接。要关闭连接,您应该在Mongo / MongoClient对象上调用close,该对象继承或具有将as per the API关闭与MongoDB服务器实例的所有连接的close函数。