29

I'm holding one instance of MongoClient and DB in my application, and every time that I want to execute some operation I call getCollection().
I'm wondering if I need to explicitly close the connection, just like connection.close() in JDBC.

To emphasize, I have only one MongoClient instance. My question is not about closing MongoClient but closing the connections I believe it opens when I'm calling getCollection().

4

2 回答 2

32

不,您不需要关闭与 DB 的连接 - 您唯一的连接是通过 MongoClient 并且如文档所述 - 它为您处理连接池。

您想要清理的唯一资源是一个游标,当您完成它时您应该close() 。

于 2013-11-13T09:23:53.847 回答
8

如果你有很多 MongoClient,你应该关闭。

MongoClient 实例实际上代表了一个数据库连接池;即使有多个线程,您也只需要一个 MongoClient 类的实例。

MongoClient.close() 清理资源

MongoClient.close() - 关闭底层连接器,进而关闭所有打开的连接。一旦调用,这个 Mongo 实例就不能再使用了。

更多:http ://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/

于 2013-11-12T19:35:49.283 回答