【问题标题】:Close Connection for Mongodb using Casbah API使用 Casbah API 关闭 Mongodb 连接
【发布时间】:2012-03-06 17:43:41
【问题描述】:

我没有得到任何有关“如何使用 casbah API 关闭 mongodb 连接”的有用信息。实际上,我已经定义了多个方法,并且在每个方法中我都需要与 mongodb 建立连接。工作后我也需要关闭它。我正在使用 Scala。

方法之一(scala 中的代码示例):

import com.mongodb.casbah.Imports._
import com.mongodb.casbah.MongoConnection

def index ={
  val mongoConn = MongoConnection(configuration("hostname"))
  val log = mongoConn("ab")("log")
  val cursor = log.find()
  val data = for {x <- cursor} yield x.getAs[BasicDBObject]("message").get
  html.index(data.toList)
  //mongoConn.close()  <-- here i want to close the connection but this .close() is not working
}

【问题讨论】:

    标签: scala mongodb casbah


    【解决方案1】:

    尝试使用 .close 代替。如果函数在 scala 中没有参数,则 sometimes 不要在其后使用括号。

    编辑:我有错误的信息,已编辑以包含正确的信息 + 链接。

    【讨论】:

    • 实际上,有时最好使用括号 - 例如如果你调用的函数有副作用(.close() 这里肯定有副作用)。
    • 我的问题是它到底是怎么不工作的?,例如有什么问题?
    • 嗯,确实,在我的本地控制台中尝试它,效果很好。
    【解决方案2】:

    从您的问题来看,尚不清楚为什么 close 不起作用。它会抛出一些异常,它没有编译,还是没有效果? 但由于MongoConnectioncom.mongodb.Mongo 的薄包装,您可以直接使用底层Mongo,就像在普通的旧Java 驱动程序中一样:

    val mongoConn = MongoConnection(configuration("hostname"))
    mongoConn.underlying.close()
    

    其实就是这样,is implemented 在 casbah 有多近。

    【讨论】:

    • 谢谢,它的工作。(我是新来的,所以我不能投票[:(])。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多