gpt4 book ai didi

mongodb - 如何从 Mongodb,casbah 获取数字值

转载 作者:可可西里 更新时间:2023-11-01 10:31:58 24 4
gpt4 key购买 nike

我有一个从 MongoDB 获取端口号的简单代码。我用的是scala,驱动当然是casbah。

  def getPortNo : Int {
val query = MongoDBObject("_id" -> "Store")
val data = coll.findOne(query)
return data.get("port")
}

这里我的应用只有一个id等于“store”的文档。

但这在IDE中没有解决。

我有相同的代码来获取版本。

  def getVersion : String = {
val query = MongoDBObject("_id" -> "Store")
val data = coll.findOne(query)
return data.get("version").toString
}

这很有效。

我尝试了 data.get("port").toString.toInt 但它也不起作用。

谁能告诉我怎么做。我认为这里的问题是返回值不是数字或字符串。什么是返回类型以及如何将其转换为数字。

最佳答案

这取决于您如何存储“端口”字段。试试 data.as[Number]("value").intValue()。它必须适用于任何数字格式。

你应该考虑到 findOne 返回 Option,所以你也可以返回 Option:

  def getPortNo : Option[Int] = {
val query = MongoDBObject("_id" -> "Store")
val data = coll.findOne(query)
data.map(_.as[Number]("port").intValue)
}

或者使用一些默认值:

  def getPortNo : Int = {
val query = MongoDBObject("_id" -> "Store")
val data = coll.findOne(query)
data.map(_.as[Number]("port").intValue).getOrElse(80)
}

关于mongodb - 如何从 Mongodb,casbah 获取数字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21455112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com