Docs 菜单
Docs 主页
/ / /
Scala
/

连接至 MongoDB

检索MongoDB Atlas部署的连接字符串后,您可以从Scala应用程序连接到该部署并查询Atlas示例数据集。

1

scala-quickstart导航到您在本指南的 下载和安装步骤中创建的 目录,并创建src/main/scala/quickstart 个嵌套目录。

选择与操作系统对应的标签页并运行以下命令,在 quickstart 子目录中创建 Main.scala文件:

cd src/main/scala/quickstart
touch Main.scala
cd src/main/scala/quickstart
type nul > Main.scala
2

将以下Helpers.scala 文件从 驾驶员源代码 添加到 src/main/scala/quickstart目录:

package quickstart
import java.util.concurrent.TimeUnit
import scala.concurrent.Await
import scala.concurrent.duration.Duration
import org.mongodb.scala._
object Helpers {
implicit class DocumentObservable[C](val observable: Observable[Document]) extends ImplicitObservable[Document] {
override val converter: (Document) => String = (doc) => doc.toJson
}
implicit class GenericObservable[C](val observable: Observable[C]) extends ImplicitObservable[C] {
override val converter: (C) => String = (doc) => Option(doc).map(_.toString).getOrElse("")
}
trait ImplicitObservable[C] {
val observable: Observable[C]
val converter: (C) => String
def results(): Seq[C] = Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))
def headResult() = Await.result(observable.head(), Duration(10, TimeUnit.SECONDS))
def printResults(initial: String = ""): Unit = {
if (initial.length > 0) print(initial)
results().foreach(res => println(converter(res)))
}
def printHeadResult(initial: String = ""): Unit = println(s"${initial}${converter(headResult())}")
}
}

此文件允许您访问权限用于打印查询结果的辅助方法。

3

将以下代码复制并粘贴到Main.scala文件中,该文件将查询sample_mflix数据库中的movies集合:

package quickstart
import org.mongodb.scala._
import org.mongodb.scala.model.Filters._
import Helpers._
object Main {
def main(args: Array[String]): Unit = {
val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase =
mongoClient.getDatabase("sample_mflix")
val collection: MongoCollection[Document] =
database.getCollection("movies")
val filter = equal("title", "The Shawshank Redemption")
collection.find(filter).printResults()
mongoClient.close()
}
}
4

<connection string> 占位符替换为从本指南的创建连接字符串步骤复制的连接字符串。

5

在项目根目录中,运行以下命令以启动 sbt Shell并运行应用程序:

sbt
run

命令行输出包含有关检索到的电影文档的详细信息:

{"_id": {"$oid": "..."}, ... , "genres": ["Crime", "Drama"], "rated": "R",
"metacritic": 80, "title": "The Shawshank Redemption", ... }

如果遇到错误或看不到输出,请确保在Main.scala文件中指定了正确的连接字符串并加载了样本数据。

提示

您可以通过运行以下命令退出 sbt Shell :

exit

完成这些步骤后,您将拥有一个Scala应用程序,它可连接到MongoDB 部署、对示例数据运行查询并返回匹配的文档。

注意

如果您在该步骤中遇到问题,请在 MongoDB 社区论坛中寻求帮助,或使用本页右侧或右下角的 Rate this page(本页内容评级)标签页提交反馈。

后退

创建连接字符串