使用Scala从mongodb访问值

时间:2016-05-17 14:32:21

标签: json mongodb scala

执行MongoDB查询后,我的结果类型为: exists("loaded_nerd_tree")

要访问我使用的res = Seq[Document]BsonString

返回:

res (0).get("n"))

如何从BsonString中以字符串形式访问值Some(BsonString{value='value'})

访问value的值返回Some(BsonString{value='value'})我是否需要使用库(例如Jackson)将BsonString{value='value'}转换为Scala对象,然后访问该值?

1 个答案:

答案 0 :(得分:1)

我想你使用的是mongo scala驱动程序(而不是ReactiveMongo)。

在这种情况下,返回的BsonString是一个java对象; here是指向javadoc的scaladoc。

您可以通过getValue方法访问该值。

当你回到Option个对象时,我建议使用正确的理解来避免运行时异常;类似的东西:

val optionalResult = for {
  doc <- res.headOption
  element <- doc.get[BsonString]("n")
} yield (element.getValue)

optionalResult的类型为Option[String]。 然后,您可以检查是否有值并使用它;通过map,flatMap,foreach甚至if (optionalResult.isDefined)